在R中,在列表中选择子列表,并实际保留子列表';s名称,而不是顶级父级名称
几个小时以来,我一直在努力解决以下问题 所以我有一个清单,比如:在R中,在列表中选择子列表,并实际保留子列表';s名称,而不是顶级父级名称,r,R,几个小时以来,我一直在努力解决以下问题 所以我有一个清单,比如: Wyoming <- c("City1", "City2", "City3", ...) Ontario <- c("City1", "City2", "City3", ...) Florida <- c("City1", "City2", "City3", ...) ... # for all federated states Mexico <- list(Sonora, Yucatan, Chiapa
Wyoming <- c("City1", "City2", "City3", ...)
Ontario <- c("City1", "City2", "City3", ...)
Florida <- c("City1", "City2", "City3", ...)
... # for all federated states
Mexico <- list(Sonora, Yucatan, Chiapas, Sinaloa)
Canada <- list(Alberta, Quebec, Ontario, Manitoba)
USA <- list(Wyoming, Colorado, NewHampshire, Florida)
ListOriginal <- list(USA, Canada, Mexico)
到目前为止,我一直在尝试的一切,例如,当我使用以下
NorthAmericaFedStates <- sapply(ListOriginal, "[[", 1)
我可以选择我想要的,并在控制台中显示它,并将结果保存在变量中,但是当我打印变量时,它将出现与上面相同的问题
ExactDataIWant <- function(x) {
Data <- x[1]
print(blabla)
}
ExactData <- lapply(OriginalList, ExactDataIWant)
ExactDataIWant听起来你可能只是想取消列表
unlist(unname(ListOriginal), recursive = FALSE)
我添加了unname
部分以去除国家名称,否则它们会通过将国家名称附加到地区名称来保留。谢谢大家
是。。。非常简单。。。我想我还没有充分意识到rlist软件包
这似乎真的起了作用:
library(rlist)
list.ungroup(ListOriginal, level = 1L, group.names = FALSE, sort.names = FALSE)
最棒的是,一个列表项是否包含一个、两个、三个或四个子项似乎并不重要。列表中的所有第二级项目都将处于同一级别,不区分其中的一些项目是否共享父项。我想你可以把group.names改为TRUE,如果你想知道的话 在寻求帮助时,您应该包括一个简单的示例输入和所需的输出,可用于测试和验证可能的解决方案。使用不完整的示例(“etc”,“etc”,“…”)会使测试变得非常困难。在示例构造中使用省略号是对不可复制示例的一种规定。这意味着我们期望能够读懂你的心思,并愿意完成你认为显而易见但不值得你花时间完成的任务。好吧,对不起!仍然不习惯所有这些,或者可能是do.call(c,ListOriginal)
unlist(unname(ListOriginal), recursive = FALSE)
library(rlist)
list.ungroup(ListOriginal, level = 1L, group.names = FALSE, sort.names = FALSE)