2012-11-04 3 views
4

설문 조사를 만들고 있습니다. 31 가지 가능한 질문이 있습니다. 저는 각 응답자가 3의 하위 집합에 대답하기를 바랍니다. 나는 그 응답자에게 임의의 순서로 관리되기를 바랍니다. 참가자는 동일한 질문을 두 번 대답하면 안됩니다.샘플 함수 R은 균일하게 분포 된 샘플을 생성하지 않습니다.

참가자 색인이있는 표 매트릭스와 1, 2 및 3 번 질문에 대한 질문 색인 열을 만들었습니다.

아래 코드를 사용하면 색인 31이 내 표본에서 과소 표현됩니다.

샘플 함수를 잘못 사용하고 있다고 생각합니다. 나는 누군가가 나를 도울 수 있기를 바랬다.

SgPassCode <- data.frame(PassCode=rep(0,10000), QIndex1=rep(0,10000), 
    QIndex2=rep(0,10000), QIndex3=rep(0,10000)) 

set.seed(123) 
for (n in 1:10000){ 
    temp <- sample(31,3,FALSE) 
    SgPassCode[n,1] <- n 
    SgPassCode[n,-1] <- temp 
} 

d <- c(SgPassCode[,2],SgPassCode[,3],SgPassCode[,4]) 
hist(d) 
+1

첫 번째 테스트에서'hist (sample (1:31, 10000, replace = TRUE))'는 31에서 같은 문제를 보여 줍니까? –

+1

이것은 실제 질문과는 관련이 없지만 이러한 샘플을 생성하는 훨씬 더 효율적인 방법은'SgPassCode <-t (replicate (10000, sample (31, 3, replace = FALSE))에서와 같이'replicate())'. – A5C1D2H2I1M1N2O1R2T1

답변

8

문제는 hist로하고 방법은 그것의 쓰레기통이 아닌 sample을 선택합니다. 당신이 hist는 "작업", hist(d, breaks = 0:31) (그리고 확실히 다른 많은 것들)가 작동하려면

table(d) 
# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
# 1003 967 938 958 989 969 988 956 983 990 921 1001 982 1016 1013 959 
# 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 
# 907 918 918 991 931 945 998 1017 1029 980 959 886 947 987 954 

: 증명 table의 출력입니다.