R의 replicate() 함수

Manav Narula 2021년2월25일
R의 replicate() 함수

replicate()함수는 특정 횟수만큼 표현식을 반복 할 수 있으므로 시뮬레이션을 만드는 데 사용할 수 있습니다. simplify 매개 변수를 사용하여 최종 결과의 유형을 배열 또는 목록으로 제어 할 수도 있습니다.

replicate()함수의 간단한 예는 다음과 같습니다.

replicate(5,1)
[1] 1 1 1 1 1

위의 예에서 볼 수 있듯이1은 5 번 반복되는 표현식입니다. 여기서 최종 결과는 배열입니다. 함수에simplify 매개 변수 (기본적으로True)를 추가하고False로 설정하면 배열 대신 목록을 얻게됩니다. 예를 들면 :

typeof(replicate(5,1,simplify = FALSE))
[1] "list"

2D 배열 생성과 같은 더 복잡한 시뮬레이션을 위해replicate()를 사용할 수도 있습니다. 다음 코드 스 니펫은이를 수행하는 방법을 보여줍니다.

replicate(5, seq(1,10,1))
      [,1] [,2] [,3] [,4] [,5]
 [1,]    1    1    1    1    1
 [2,]    2    2    2    2    2
 [3,]    3    3    3    3    3
 [4,]    4    4    4    4    4
 [5,]    5    5    5    5    5
 [6,]    6    6    6    6    6
 [7,]    7    7    7    7    7
 [8,]    8    8    8    8    8
 [9,]    9    9    9    9    9
[10,]   10   10   10   10   10

이 예제에서는seq()함수를 사용하여 간단한 시퀀스를 만듭니다. 1부터 10까지 1 씩 증가하는 시퀀스를 생성합니다.replicate()는 시퀀스를 5 번 반복하여 2 차원 배열을 생성합니다.

이러한 상황에서는 for()루프를 사용할 수도 있습니다. 예를 들면 :

n <- numeric(5)
arr2d <- replicate(5, {
   for(i in 1:5){n[i] <- print(i)};n} )
print(arr2d)
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    1    1    1    1
[2,]    2    2    2    2    2
[3,]    3    3    3    3    3
[4,]    4    4    4    4    4
[5,]    5    5    5    5    5

중괄호 외부의 추가 문으로 숫자 형 벡터를 사용해야합니다. 그렇지 않으면replicate()함수는 값이 쓰레기로 덤프되고for()루프를 사용하기 때문에 저장되지 않기 때문에NULL 값을 얻습니다.

arr2d <- replicate(5, {
   for(i in 1:5){print(i)}} )
print(arr2d)

출력:

[[1]]
NULL

[[2]]
NULL

[[3]]
NULL

[[4]]
NULL

[[5]]
NULL
작가: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

관련 문장 - R Function