본문 바로가기
Programming/R

[Programming][R]sample( ) 난수 생성하기(set.seed( ) 활용)

by LydiaRyu 2022. 1. 31.
반응형
  • 난수(Random number) 란?

난수는 일정한 범위 안에서 무작위로 추출된 수를 의미한다. 영어로 Random number로 쓰이는 것처럼 예측할 수 없고, 정해지지 않은 임의로 추출되는 수이다. 

 

  • R에서 난수 생성하는 방법

sample( ) 함수를 이용해서 R에서 난수를 생성할 수 있다. 

 

sample(x, size, replace = FALSE, prob = NULL)

 

  • x: 생성하고자 하는 난수의 범위. 
  • size: 추출하려는 난수의 개수.
  • replace: 복원 추출 여부. (TRUE: 중복해서 추출/ FALSE: 중복 없이 추출. 기본값은 FASLE이다.)
  • prob: 추출되는 원소의 확률 가중치 벡터.

 

sample(1:50, size = 7, replace = FALSE)
[1] 15 11  8  7 28 26 27

sample(1:50, size = 7, replace = TRUE)
[1] 13 19 12 28  7 13 17

 

1부터 50까지의 숫자 중에 7개의 수를 뽑는다고 했을 때, replace = TRUE인 경우 복원 추출(중복하여 추출)이기 때문에 13이 두 번 뽑힌 것을 볼 수 있다. 

 

  • set.seed( )

sample( ) 함수로 난수 생성을 할 경우 실행할 때마다 다른 난수를 생성한다. 만약, 한 번 생성한 난수를 계속하여 사용하고 싶다면 set.seed( ) 함수로 생성된 난수를 고정할 수 있다. 

 

sample(1:50, size = 7, replace = FALSE)
[1] 25  9 45 42 40 19 17
sample(1:50, size = 7, replace = FALSE)
[1] 37 26 15  1 34 41 47

set.seed(42)
sample(1:50, size = 7, replace = FALSE)
[1] 49 37  1 25 10 36 18
set.seed(42)
sample(1:50, size = 7, replace = FALSE)
[1] 49 37  1 25 10 36 18

 

sample을 두 번 실행하면 다른 값이 나오지만, set.seed(42)로 고정을 해두면 set.seed(42)를 앞에 붙인 후 실행할 때마다 같은 값이 생성된다. 이때, 42는 key 같은 역할을 하는 것으로 원하는 숫자를 입력한다. 

 

 

728x90

댓글