【发布时间】:2015-12-23 14:06:23
【问题描述】:
我想获取列表列表的名称。因此,我想将列表元素(第一级)的名称与列表元素列表(第二级)的名称粘贴(或添加)。这应该用“.”来完成。对我来说重要的是名称的顺序与列表列表中的顺序相同。这是一个没有值的示例(请注意,我有更多的子列表,每个元素有九个):
GER_WF_groups <- list(A=list(fruits.2000=matrix(),nuts.2000=matrix(),veggies.2000=matrix(),
fruits.2001=matrix(),nuts.2001=matrix(),veggies.2001=matrix(),
fruits.2002=matrix(),nuts.2002=matrix(),veggies.2002=matrix()),
B=list(fruits.2000=matrix(),nuts.2000=matrix(),veggies.2000=matrix(),
fruits.2001=matrix(),nuts.2001=matrix(),veggies.2001=matrix(),
fruits.2002=matrix(),nuts.2002=matrix(),veggies.2002=matrix()),
C=list(fruits.2000=matrix(),nuts.2000=matrix(),veggies.2000=matrix(),
fruits.2001=matrix(),nuts.2001=matrix(),veggies.2001=matrix(),
fruits.2002=matrix(),nuts.2002=matrix(),veggies.2002=matrix()))
直到知道我使用了一种复杂的方法来获取这个有序名称,但它确实有效,见下文:
years_sapply2 <- sapply(GER_WF_groups,function(x) paste("BLUE", names(x) ,sep="."))
str(years_sapply2)
years_mat2 <- matrix(years_sapply2, nrow=9, byrow=F)
years_mat3 <- matrix(years_mat2, ncol=1, byrow=F)
years_vec <- years_mat3[,1]
BLUEyears <- years_vec[1:9]
GREENyears <- BLUEyears
GREYyears <- BLUEyears
GREENyearsN <- sub("BLUE", "GREEN", GREENyears)
GREYyearsN <- sub("BLUE", "GREY", GREYyears)
years_namesALL <- c(BLUEyears, GREENyearsN, GREYyearsN)
我的问题是:有没有更快/更简单的方法来完成这项工作?谢谢
“years_namesALL”是预期结果。
【问题讨论】:
-
您的列表嵌套有多深?