我想生成分数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