【发布时间】:2015-10-22 13:37:53
【问题描述】:
我有一个非常混乱的列表,其中包含多个级别:
[[1]]
[[1]][[1]]
[[1]][[1]][[1]]
[1] "D" "B" "A"
[[1]][[1]][[2]]
[1] "E" "B" "A"
[[1]][[2]]
[[1]][[2]][[1]]
[1] "D" "C" "A"
[[1]][[3]]
[[1]][[3]][[1]]
[1] "B" "D" "A"
....
[[5]][[2]][[2]]
[1] "D" "B" "E"
[[5]][[3]]
[1] "C" "E"
...
获取最低级别字符向量列表的最简单方法是什么,所以第一个元素是“D”“B”“A”,然后下一个元素是“E”“B”“A”和等等?
谢谢!
编辑: 这是我要求的 dput 格式的列表。但是,嵌套结构可以改变并且层数可以增加。因此,任何通过使用预设数量的级别来工作的解决方案都是不好的。
> dput(myResults)
list(list(list(c("D", "B", "A"), c("E", "B", "A")), list(c("D",
"C", "A")), list(c("B", "D", "A"), c("C", "D", "A"), c("E", "D",
"A")), list(c("B", "E", "A"), c("D", "E", "A"))), list(list(c("D",
"A", "B"), c("E", "A", "B")), c("C", "B"), list(c("A", "D", "B"
), c("E", "D", "B")), list(c("A", "E", "B"), c("D", "E", "B"))),
list(list(c("D", "A", "C")), c("B", "C"), list(c("A", "D",
"C")), c("E", "C")), list(list(c("B", "A", "D"), c("C", "A",
"D"), c("E", "A", "D")), list(c("A", "B", "D"), c("E", "B",
"D")), list(c("A", "C", "D")), list(c("A", "E", "D"), c("B",
"E", "D"))), list(list(c("B", "A", "E"), c("D", "A", "E")),
list(c("A", "B", "E"), c("D", "B", "E")), c("C", "E"),
list(c("A", "D", "E"), c("B", "D", "E"))))
【问题讨论】:
-
能否请您提供您的数据的
dput或reproducible example?子集嵌套列表有时非常棘手,没有一段代码很难帮助你。所需输出的可视化表示也非常有用。 -
修改生成此列表的代码可能更容易。
-
问题是我没有看到它——它已经传给了我……嗯,不过你的观点很好。我会跟进...我认为必须有一个函数可以到达基本级别并附加它
-
我打算建议
u <- unlist(x); l <- rapply(x, length),然后根据l中的长度拆分u。但现在它是重复的。可能效率不高,但似乎更容易完成并且可能是安全的。