在for循环R中存储具有不同值的列表

时间:2019-11-27 09:29:06

标签: r list for-loop

我有一个清单

list1 <- list()

和两个序列

seq1 <- seq(10, 1000, by  = 10)
seq2 <- seq(2, 10, by = 10)

我想循环两个序列,例如

for(i in seq1){
  for(j in seq2){
    ########
    # code #
    ########
   }
}

,以便使用seq1和seq2的不同组合创建不同的列表。 我需要一个包含多个包含不同组合的列表的列表,例如

list1具有多个列表,这些列表具有不同的seq1和seq2组合(((10,2),(10,4)...)

2 个答案:

答案 0 :(得分:2)

有更有效的方法可以实现目标,但是,如果您更愿意通过for-loop来实现目标,则可以尝试

for(i in seq1){
  for(j in seq2){
    list1[[length(list1)+1]] <- c(i,j)
  }
}

如此

> head(list1)
[[1]]
[1] 10  2

[[2]]
[1] 20  2

[[3]]
[1] 30  2

[[4]]
[1] 40  2

[[5]]
[1] 50  2

[[6]]
[1] 60  2

答案 1 :(得分:1)

您可以使用expand.grid来包含两个向量的组合:

expand.grid(seq1, seq2)

具有组合列表:

list1 <- expand.grid(seq1, seq2)
split(list1, seq(nrow(list1)))

要删除列名称,请改用:

split(as.matrix(list1), row(list1))