비디오: r/Mildlyinfuriating | Gah! My candy! That's it -- this is going on Reddit. 2024
통계학자는 종종 표본을 취하여 통계를 계산해야합니다. 샘플은 실제로 데이터의 하위 집합 이상이므로 R을 사용하면 샘플을 가져 오는 것이 쉽습니다. 그렇게하기 위해, vector를 입력으로 사용하는 sample ()을 사용합니다. 그 목록에서 얼마나 많은 샘플을 가져올 지 말해줍니다.
다이의 롤을 시뮬레이트하고 싶어하고 10 개의 결과를 얻고 싶다고합시다. 단일 주사위 굴림의 결과가 1에서 6 사이의 숫자이기 때문에 코드는 다음과 같습니다.
sample ()에 10 개의 값을 반환하도록 지시합니다. 다이의 모든 롤이 다이의 다른 모든 롤과 독립적이기 때문에 대체품으로 샘플링하고 있습니다. 즉, 목록에서 하나의 샘플을 가져 와서 목록을 원래 상태로 다시 설정합니다. 즉, 방금 그린 요소를 목록에 다시 추가합니다.
sample () 함수의 반환 값은 무작위로 결정된 숫자이므로이 함수를 반복적으로 사용하면 매번 다른 결과가 나옵니다. 이것은 대부분의 경우에 올바른 동작이지만 때때로 함수를 실행할 때마다 반복 가능한 결과를 얻길 원할 수도 있습니다.
일반적으로 코드를 개발하고 테스트 할 때 또는 다른 사람이 코드를 테스트하고 사용자가 수행 한 것과 동일한 값을 얻을 수 있는지 확인하려는 경우에만 발생합니다. 이 경우 소위
시드 값을 지정하는 것이 일반적입니다.
그러나 시드를 설정하지 않으면 R은 난수 생성기 (RNG)의 현재 상태에서 그립니다. 시작시 R은 임의의 시드를 설정하여 RNG를 초기화 할 수 있지만 RNG를 호출 할 때마다 R은 RNG 스트림의 다음 값에서 시작합니다. 당신은에 대한 도움말을 읽을 수 있습니까? 자세한 내용을 얻으려면 RNG를 사용하십시오.
R에서는 세트를 사용합니다. seed () 함수는 시드 시작 값을 지정합니다. 설정할 인수입니다. seed ()는 정수 값입니다. >> 설정. seed (1)> sample (1: 6, 10, replace = TRUE) [1] 2 3 4 6 2 6 6 4 4 1
시드를 설정하지 않고 다른 샘플을 그릴 경우, 결과는 다음과 같습니다. >> 샘플 (1: 6, 10, replace = TRUE) [1] 2 2 3 5 3 5 6 3 5
seed ()는 실제로 RNG를 재설정하고 다시 시도합니다. 그러나 이번에는 시드를 다시 한 번 설정하십시오: >>. seed (1)> sample (1: 6, 10, replace = TRUE) [1] 2 3 4 6 2 6 6 4 4 1
처음 사용한 것과 같은 결과를 얻습니다. 씨앗 (1).
sample ()을 사용하여 데이터 프레임 아이리스에서 샘플을 가져올 수 있습니다. 이 경우 replace = FALSE 인수를 사용할 수 있습니다. 이것은 replace 인수의 기본값이므로 >> 집합을 명시 적으로 작성할 필요는 없습니다. seed (123)> index index [1] 44 119 62 133 142> 홍채 [색인,] Sepal. Length Sepal. 너비 꽃잎. 길이 꽃잎. 폭 종 44 5. 0 3. 5 1. 6 0. 6 세트 사 119 7. 7 2. 6 6. 9 2. 3 버지니아 62 5. 9 3. 0 4. 2 1. 5 versicolor 133 6. 4 2. 8 5. 6 2. 2 버지니아 142 6. 9 3. 1 5. 1 2. 3 버지니아