R의 Sample() 함수

Rui Sample Hamsu



R에서는 sample() 함수를 사용하여 벡터 또는 목록에서 무작위로 샘플 값을 얻습니다. 이를 통해 많은 통계 응용 프로그램에서 유용한 데이터 하위 집합을 무작위로 선택할 수 있습니다. 입력이 sample() 함수의 목록인 경우 출력도 요소 수는 같지만 요소가 선택된 목록이 됩니다. 이 기사는 다양한 인수를 설정하는 구현과 함께 R의 sample() 함수를 보여줍니다.

예 1: 데이터 인수와 함께 Sample() 함수 사용

R의 sample() 함수는 샘플 데이터와 함께 제공되어야 무작위로 숫자를 생성할 수 있습니다. 샘플 데이터는 다음 코드가 제공되는 sample() 함수의 필수 인수입니다.

데이터X < - 씨 ( 10 , 이십 , 30 , 40 , 오십 , 60 , 70 , 80 , 90 , 100 )

견본 ( 데이터X , )

견본 ( 데이터X , )

여기에서 먼저 'dataX' 변수 내 정수 요소의 벡터를 생성합니다. 다음으로 코드에서 sample() 함수를 두 번 호출하고 이전에 생성한 'dataX' 벡터를 인수로 전달합니다. sample(dataX, 3)의 첫 번째 사용은 'dataX' 벡터에서 세 요소의 무작위 샘플을 가져옵니다. 결과는 'dataX'에서 세 요소의 임의 순열입니다. 그런 다음 'dataX' 벡터에서 세 요소의 또 다른 독립적인 임의 샘플을 가져오는 sample(a, 5)를 다시 사용합니다. 이번에는 결과가 지난번과 완전히 다릅니다.







출력은 sample() 함수를 두 번 호출할 때 다른 요소를 보여줍니다. 샘플을 무작위로 생성할 때마다 벡터에서 다른 요소를 얻습니다.





예 2: 교체 인수와 함께 Sample() 함수 사용

또한 논리값을 취하는 sample() 함수의 'replace' 인수가 있습니다. 대체 옵션 TRUE로 요소를 샘플링하면 유사한 요소를 두 번 이상 선택할 수 있습니다. 그러나 값이 FALSE로 설정되면 요소가 대체 없이 샘플링되도록 하는 각 요소의 선택이 하나만 있을 수 있습니다.





난수 = ( 열하나 , 25 , 12 , 89 , 넷 다섯 , 16 , 67 , 38 , 96 , 55 , 73 )

견본 ( 난수 , 4 , 바꾸다 = 진실 )

견본 ( 난수 , 5 , 바꾸다 = 진실 )

여기에서 먼저 'random_numbers' 변수의 일부 숫자 값으로 벡터를 정의합니다. 그런 다음 'random_numbers'가 인수로 전달되는 sample() 함수를 호출합니다. 값 '4'는 'random_numbers'의 벡터에서 4개의 임의 값만 선택함을 나타내는 sample() 함수에 지정됩니다.

다음으로 sample() 함수의 replace=TRUE는 각 값을 두 번 이상 선택할 수 있음을 지정합니다. 그런 다음 이번에는 벡터에서 '5'개의 임의 값을 선택하는 sample() 함수를 다시 배포합니다. 마찬가지로 각 값에 대한 다중 선택 옵션에 대해 이전과 같이 대체 인수를 'TRUE'로 설정합니다.



보시다시피 첫 번째 출력은 'random_numbers' 벡터에서 무작위로 선택된 4개의 요소로 구성된 벡터를 표시합니다. 그러나 다음 출력에는 임의로 선택된 요소 '5'의 벡터가 표시됩니다.

예 3: 크기 인수와 함께 Sample() 함수 사용

sample() 함수가 전달하는 다음 인수는 '크기'입니다. '크기'는 그릴 샘플의 값을 나타내는 선택적 매개변수입니다. 'size' 매개변수가 있는 sample() 함수의 코드는 다음과 같습니다.

벡터 < - 1 : 10

견본 ( 벡터 , 크기 = 5 )

여기서 숫자 벡터는 'vectors' 변수에서 1에서 10까지의 정수 시퀀스로 정의됩니다. 그런 다음 sample() 함수는 벡터에서 무작위 요소 선택에 사용됩니다. 보시다시피 sample() 함수는 두 개의 인수를 취합니다. 첫 번째 인수는 샘플을 얻는 벡터입니다. 다음 인수는 벡터에서 선택할 요소가 5개뿐임을 나타내는 '5' 값으로 지정되는 크기입니다.

따라서 선택한 요소는 다음 출력에서 ​​새 벡터로 임의의 순서로 반환됩니다.

예제 4: R 목록에 대한 Sample() 함수 사용

또한 R의 목록에 대해 sample() 함수를 사용할 수 있습니다. 예제의 이 섹션에서는 목록에서 임의의 값을 가져옵니다.

R_목록 < - 목록 ( 1 : 4 ,

913 ,

( '엑스' , 'YYY' , '좋은' ) ,

'쿨쿨' ,

5 )

결과 < - R_리스트 [ 견본 ( 1 :길이 ( R_목록 ) , 크기 = 4 ) ]

결과

여기서 'R_list'의 목록은 숫자 벡터, 단일 숫자, 문자 벡터, 문자열 및 다른 숫자를 포함하는 다양한 유형의 요소로 정의됩니다. 그런 다음 sample() 함수가 호출되는 '결과' 변수를 만듭니다.

sample() 함수 내에서 샘플링할 인덱스 벡터를 나타내는 '1:length(R_list)' 표현식을 설정합니다. 다음으로 '4'인 샘플링할 요소의 수를 지정하는 '크기' 인수가 있습니다. 따라서 'R_list'는 'R_list' 목록에서 임의로 선택된 세 개의 요소를 생성합니다. 'R_list' 목록의 요소는 다른 유형이므로 'result'의 결과 요소도 다른 유형일 수 있습니다.

출력은 원래 목록의 임의 하위 집합을 포함하는 새 목록을 나타냅니다.

예제 5: Prob 인수와 함께 Sample() 함수 사용

또한 sample() 함수의 'prob' 매개변수가 있습니다. 'prob' 인수는 벡터에서 선택된 요소의 확률을 제공합니다. 'prob' 인수가 사용되지 않을 때 모든 요소는 동일한 확률을 갖는 것으로 가정합니다.

내_데이터 = ( 31 , 99 , 5 , 24 , 72 )

견본 ( 내_데이터 , 크기 = 10 , 바꾸다 = 진실 ,

확률 = ( 0.5 , 대표 ( 0.1 , 4 ) ) )

여기서 숫자 벡터의 요소는 'my_data'라고 합니다. 다음 단계에서는 'my_data'가 무작위로 선택된 10개의 요소에 전달되는 sample() 함수를 호출합니다. 그런 다음 임의로 선택할 값이 '10' 크기여야 함을 지정하는 'size' 인수가 정의됩니다. 그런 다음 'replace' 인수에 'TRUE'를 할당합니다. 이는 선택한 각 요소가 다음 요소를 선택하기 전에 벡터로 대체됨을 의미합니다. sample() 함수에 정의된 세 번째 인수는 'my_data' 벡터의 각 요소가 선택될 확률을 정의하는 'prob'입니다. 첫 번째 요소의 확률은 '0.5'로 설정됩니다. 나머지 4개의 벡터 요소에 대한 확률은 '0.1'입니다.

다음 출력은 예상대로 벡터에서 첫 번째 요소의 가장 높은 확률로 검색됩니다.

예제 6: Sample() 함수를 사용하여 막대 그래프 렌더링

마지막으로 sample() 함수는 주어진 확률 분포로 범주형 변수의 분포를 시각화하기 위해 R에서 막대 그래프를 구성하는 데 사용됩니다.

sample_data = ( 1 , 2 , )

막대 그래프 ( 테이블 ( 견본 ( sample_data , 크기 = 500 , 바꾸다 = 진실 , 확률 = ( .30 , .60 , .10 ) ) ) )

여기서 정수 값의 벡터로 'sample_data'를 정의한 후 sample() 함수를 배포하여 막대 그래프를 생성합니다. 먼저 table() 함수를 호출하는 barplot을 호출하여 결과 샘플의 빈도 테이블을 만듭니다. 그런 다음 table() 함수 내에서 sample() 함수를 지정합니다. 여기서 크기 1000의 임의 샘플은 정수 1에서 3까지의 벡터에서 추출됩니다. 그런 다음 'prob' 인수를 사용하여 각 정수를 선택할 확률을 지정합니다. .

이제 볼 수 있듯이 막대 그래프는 각 정수에 대해 하나씩 3개의 막대로 다음과 같이 렌더링되며 막대의 높이는 샘플에서 발생하는 정수와 관련이 있습니다.

결론

sample() 함수가 다양한 예제와 함께 작동하는 방식을 살펴보았습니다. sample() 함수는 샘플 데이터가 필수이고 다른 모든 인수는 선택적이며 특정 경우에 호출되는 다른 인수와 함께 사용됩니다. 그러나 sample() 함수는 통계 분석이나 대규모 데이터 세트로 작업할 때 유용합니다.