首页 > 解决方案 > 如何在R中的循环中创建子列表

问题描述

我在 while 循环中有一个 for 循环。每次 while 迭代后,我递增 1(count = 1 然后 count = 2 ...)每次 for 迭代我返回几个变量。(a = 1,b = 2)

我想创建一个 count = 1..4 的列表,然后是每个 for 迭代(i),然后是我在 for 循环中创建的变量。例子:

List$Count1$Iter1$a

List$Count2$Iter2$a

List$Count4$Iter3$b

在下面的示例中,我想要一个名为“out”的列表: out$(W_count)1...4$(Iter)1...5$A,B

我知道代码有几个问题,但我找不到解决这个问题的正确方法。

count = 1
while( count < 5 ) {

    for(i in 1:5) {
        b = i * i
        a = b * 2
        out = list(W_count = count)
        out[[count]] = list(iter = i)
        out[[count]][[i]] = list(A = a, B = b)
        count = count + 1
    }
}

标签: rlistloopsnested-loops

解决方案


如果我理解正确,

out <- list()
count = 1
while( count < 5 ) {

    for(i in 1:5) {
        b = i * i
        a = b * 2

      out[[paste0("W_count",count)]][[paste0("Iter",i)]] <-list(A = a, B = b)

    }
    count = count + 1
}

给,

> out$W_count1$Iter1$A
[1] 2

> out$W_count2$Iter2$A
[1] 8

> out$W_count4$Iter3$B
[1] 9

推荐阅读