我试图用嵌套for循环实现for循环。每次for循环运行时,它将print
两个整数值或next
到下一次迭代。
结果,我有输出 来自for循环看起来像这样:
[1] 10 57
[1] 10 58
[1] 10 59
[1] 10 63
[1] 10 64
[1] 10 67
[1] 10 68
[1] 10 69
[1] 10 70
[1] 10 71
[1] 10 72
[1] 10 75
[1] 10 76
[1] 10 77
[1] 10 78
[1] 10 79
[1] 10 80
[1] 10 82
[1] 10 86
[1] 10 87
[1] 10 90
我想知道在列表中插入这些整数对的最佳做法是什么。由于有一个for循环,迭代器i
嵌套在for循环中,迭代器为j
,我不能只写:
list[[i]] <- c(i, j)
答案 0 :(得分:0)
说indx
是一个带有一些随机值的向量:
[1] 58 61 67 69 70 72 78 79 84 85
我会写的for循环:
for(i in 1:3){
for(j in indx){
print(c(i, j))
}
}
会产生以下输出(不将其分配给对象):
[1] 1 58
[1] 1 61
[1] 1 67
[1] 1 69
[1] 1 70
[1] 1 72
[1] 1 78
[1] 1 79
[1] 1 84
[1] 1 85
[1] 2 58
[1] 2 61
...
[1] 3 84
[1] 3 85
如果您尝试将其保存到矢量中,则此代码适用于您:
myls <- vector()
for(i in 1:3){
for(j in indx){
myls <- c(myls, c(i, j))
}
}
修改强>
根据OP的附加评论,我想通过附加i
和j
的每个组合作为列表元素,向您展示直接获取列表的另一种方式:
indx <- c(58, 61, 67, 69, 70, 72, 78, 79, 84, 85)
myls <- list()
for(i in 1:3){
for(j in indx){
myls <- c(myls, list(c(i, j)))
}
}
您的myls
变量现在是一个列表:
myls[1:3]
[[1]]
[1] 1 58
[[2]]
[1] 1 61
[[3]]
[1] 1 67