2016-02-03 53 views
0

I'm创建通过附加基于由国家循环列表和命名每个子列表与每个国家的名称列表:命名和追加名单列表的循环中

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)) 

} 

它的工作原理,但每个子列表都是名字“我”而不是国家的名称;如果我尝试包括get(I)= get(I),我会得到一个错误。我怎么能让这个名字起作用?也欢迎任何改进此代码的建议。

+0

不确定你在尝试什么,但是'hash'包似乎对你正在尝试做的事很有用。 – Ananta

+1

你从哪里获得人口和规模,而且还没有国家? – Mist

回答

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但是总的来说,如果你知道任何对象的大小,它更有效地声明它而不是增加它。