我想生成分數i (0:36)
頻率j
。我想j
循環是隨機數字。我做的是:雙循環隨機抽樣
j<-1:70
for(i in 0:36) {
for (j in 1:sample(j)) {
print(i,j)
}
}
但我得到了錯誤。我應該把sample(j,1, replacement=TRUE)
而不是隻是sample(j)
? 謝謝
我想生成分數i (0:36)
頻率j
。我想j
循環是隨機數字。我做的是:雙循環隨機抽樣
j<-1:70
for(i in 0:36) {
for (j in 1:sample(j)) {
print(i,j)
}
}
但我得到了錯誤。我應該把sample(j,1, replacement=TRUE)
而不是隻是sample(j)
? 謝謝
嘗試
for(i in 0:36) {
for(k in 1:sample(70, 1)) {
print(c(i,k))
}
}
但是,'print(i,k)'的意思是「用k個有效數字打印我」。你是不是指'print(c(i,k))'? –
哎呀是啊抓到一個錯誤,但不是其他人... – Karl
是的,你的代碼工作。數字表達式有23個元素:僅第一個使用 2:In 1:sample(j): 數值表達式有17個元素:只有第一個使用了 – user634455
如果我理解正確的話,你想從一個到70倍(隨機選擇的次數來複制值)複製在i
每個元素。
i <- 0:36
j <- 1:70
#number of times to replicate each i
times <- sample(j, length(i), replace=FALSE)
result <- rep(i, times)
是否使用替代= FALSE或不取決於你希望如何完成採樣(如更換=每個j被選擇最多一次假保證。
如果你想有一個隨機號,你應該使用runif
,具有最小/最大控制範圍。您也可以使用sample
,但那麼最好使用sample.int(max, 1)
j<-70
for(i in 0:36) {
for (k in 1:runif(1,1,j)) {
cat(i,k, "\n")
}
}
然後內環不應該覆蓋j
(其壽ld是一個常量) - 所以我將循環變量重命名爲k
。 ...和print
不打印這樣的多個參數 - 但是cat
呢!
你收到了什麼錯誤信息? – 2011-09-29 20:25:21