在循环内命名和追加列表列表

时间:2016-02-03 20:51:09

标签: r list loops append

我通过基于State的循环附加列表并使用每个State的名称命名每个子列表来创建列表:

library(rlist)
States=c("VA", "MA", "PA")
j=1
for (i in States) {
   i=list(population=something, size=something)

   if (j==1) {
     total_list <- list(i=get(i))
     j=2
    }
    else total_list <- list.append(total_list,i=get(i))

}

它有效但每个子列表都是名称“i”而不是状态名称;如果我尝试包括get(I)= get(I)我得到一个错误。我怎么能让名字有效?并且欢迎任何改进此代码的建议。

1 个答案:

答案 0 :(得分:1)

所以我不熟悉rlist包,但如果我在R基地工作并且我理解你的问题,我会做这样的事情:

States=c("VA", "MA", "PA")
stateList <- vector("list", length(States))
for(i in 1:length(States)){
   stateList[[i]] <- list(population = something, size = something)
}
names(stateList) <- States

再一次不熟悉rlist,但通常如果你知道任何对象的大小,那么声明它而不是添加它会更有效。