我有一个嵌套列表如下:转换嵌套列表元素融入到数据帧,并绑定结果存入一个数据帧
x <- list(x = list(a = 1,
b = 2),
y = list(a = 3,
b = 4))
而且我想嵌套列表转换成data.frames,然后绑定所有数据帧合为一体。
对于这一级别嵌套的,我可以用下面这行做到这一点:
do.call(rbind.data.frame, lapply(x, as.data.frame, stringsAsFactors = FALSE))
所以结果是:
a b
x 1 2
y 3 4
我的问题是,我想实现,无论水平的嵌套。与此列表又如:
x <- list(X = list(x = list(a = 1,
b = 2),
y = list(a = 3,
b = 4)),
Y = list(x = list(a = 1,
b = 2),
y = list(a = 3,
b = 4)))
do.call(rbind.data.frame, lapply(x, function(x) do.call(rbind.data.frame, lapply(x, as.data.frame, stringsAsFactors = FALSE))))
a b
X.x 1 2
X.y 3 4
Y.x 1 2
Y.y 3 4
有谁有一个想法,generelized这对任何级别的嵌套? 感谢您的帮助
对输入列表的结构是否有任何保证?它会一直有叶子包含相同数量的元素?我们可以指望它始终在输出中是2列吗?或者这可能会有所不同? – Dason