【问题标题】:Naming and appending list of lists inside a loop在循环内命名和附加列表列表
【发布时间】:2016-05-13 06:18:57
【问题描述】:

我正在创建一个列表,方法是根据州的循环添加列表,并用每个州的名称命名每个子列表:

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) 我会收到错误消息。我怎样才能使名称起作用?并且欢迎任何改进此代码的建议。

【问题讨论】:

  • 不确定您正在尝试什么,但包 hash 似乎对您正在尝试做的事情很有用。
  • 你从哪里得到人口和规模,那还没有状态吗?

标签: r list loops append


【解决方案1】:

所以我不熟悉 rlist 包,但如果我在 base 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,但通常如果您知道任何对象的大小,那么声明它而不是添加它会更有效。

【讨论】:

    猜你喜欢
    • 2014-01-11
    • 2022-07-14
    • 2022-01-20
    • 2019-08-22
    • 2020-03-26
    • 2013-11-30
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多