R 随机抽样双回路

R 随机抽样双回路,r,R,我想用频率j生成分数I(0:36)。我希望j循环是随机数。我所做的是: j<-1:70 for(i in 0:36) { for (j in 1:sample(j)) { print(i,j) } } j试试看 如果我理解正确,您希望将I中的每个元素从一次复制到70次(随机选择复制值的次数) i如果需要随机数,应该使用runif。它有最小/最大值来控制范围。您也可以使用sample,但最好使用sample.int(max,1) j您收到了什么错误消息?但是,print(i

我想用频率
j
生成分数
I(0:36)
。我希望
j
循环是随机数。我所做的是:

j<-1:70
for(i in 0:36) {
  for (j in 1:sample(j)) {
    print(i,j)
  }
}
j试试看


如果我理解正确,您希望将
I
中的每个元素从一次复制到70次(随机选择复制值的次数)


i如果需要随机数,应该使用
runif
。它有最小/最大值来控制范围。您也可以使用
sample
,但最好使用
sample.int(max,1)


j您收到了什么错误消息?但是,
print(i,k)
的意思是“用k个有效数字打印i”。您的意思是
print(c(i,k))
?是的,您的代码工作正常。我的错误是警告消息说1:In 1:sample(j):数值表达式有23个元素:只有第一个使用了2:In 1:sample(j):数值表达式有17个元素:只有第一个使用了我想我没有意识到我需要使用k来使用第二个循环。非常感谢您让我了解这一点。由于示例(j)返回一个向量,并且1:n不喜欢这样,所以我仍然收到使用此解决方案的警告…@Tommy-是的,我很邋遢-我又来了<代码>1:sample(1:70)
至少应变成
1:sample(70,1)
for(i in 0:36) {
  for(k in 1:sample(70, 1)) {
    print(c(i,k))
  }
}
i <- 0:36
j <- 1:70

#number of times to replicate each i
times <- sample(j, length(i), replace=FALSE)
result <- rep(i, times)
j<-70
for(i in 0:36) {
  for (k in 1:runif(1,1,j)) {
    cat(i,k, "\n")
  }
}