[英]Double loop with random sampling
我想用频率j
生成分数i (0:36)
。 我希望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
每个元素复制1到70次(随机选择要复制值的次数)。
i <- 0:36
j <- 1:70
#number of times to replicate each i
times <- sample(j, length(i), replace=FALSE)
result <- rep(i, times)
是否使用replace = FALSE取决于您希望如何进行采样(例如,replace = 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
(应为常数)-因此我将循环变量重命名为k
。 ...并且print
不会那样打印多个args-但是cat
可以!
尝试
for(i in 0:36) {
for(k in 1:sample(70, 1)) {
print(c(i,k))
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.