2012-11-04 60 views
4

我正在創建一個調查。有31個可能的問題,我希望每個答覆者回答3個子集。我希望他們以隨機順序進行管理。參與者不應該回答這個問題指數第一,第二和第三個問題,兩次示例函數R不會生成均勻分佈的樣本

我創建了一個矩陣表與參與者指數相同的問題,一列。

用下面的代碼,索引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(樣品(1:31,10000,替換= TRUE))'顯示出與31同樣的問題? –

+1

這與您的實際問題無關,但生成這些樣本的更有效的方法是使用'replicate()',如同'SgPassCode <-t(replicate(10000,sample(31,3,replace = FALSE)) )'。 – A5C1D2H2I1M1N2O1R2T1

回答

8

的問題是與hist和方式,挑選它的垃圾桶,不sample。證明是table輸出:

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 

如果你想hist到「工作」,hist(d, breaks = 0:31)(當然有很多其他的東西)會工作。