将列表中的嵌套列表展平

13

我有一个包含嵌套列表的列表。

LIST2 <- list(list("USA","WY","TX","AZ","Canada", "CA", "NY", 'Russia', 'NY'), 
             list(c("USA","Canada","CA","WY", 'China', 'AZ', 'AZ', 'AZ', 'WY')), 
             list(c("USA","Australia","CA","AR", 'AZ', 'WY', 'New Zealand', 'Japan', 'Japan', 'NJ')),
             list(list('Australia', 'Australia', 'Japan', 'Malaysia' )),
             list(c('USA', 'Australia', 'Japan', 'Malaysia' )))

我想以某种方式使第一和第四个列表与其余的列表形式相同。这是否可能?


也许可以使用 lapply(LIST2, function(i) list(unlist(i, recursive = TRUE))) - zx8754
3个回答

17
我们可以使用rapply
lapply(LIST2, rapply, f = c)

1
不错,总是忘记使用rapply。我认为OP希望输出为列表的列表。 - zx8754
2
@zx8754 谢谢,那么像您所做的那样用 list 包装应该是正确的方法 lapply(LIST2, function(x) list(rapply(x, f = c))) - akrun
1
很好 - 这种方法还保留了我的数据结构,比这个解决方案更好。虽然我不确定为什么我的输出列表仍然有一层嵌套。但是相对于我之前高度嵌套的长度不等元素列表来说,这只是一个小问题。 - Simone

9

循环遍历列表,递归取消列表,然后作为列表返回:

lapply(LIST2, function(i) list(unlist(i, recursive = TRUE)))

4
这应该对你有所帮助:

这应该能够满足你的需求:

LIST2 <- lapply(LIST2, unlist)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接