l 为列表的列表,即l 的每一个元素均为列表,每个元素列表可能包含 NULL 值,我们需要将 l 转化为数据框 df,
df 的每一列均为原子型向量,相应的 NULL 值转化为 NA。比如:
l = list(l1 = list(1, 2, NULL, 4), l2 = list(11, NULL, 33, NULL))
转化后的数据框为
l1 l2
1 1 11
2 2 NA
3 NA 33
4 4 NA
一个可能的转化函数:
lol2df = function (lol) {
m = do.call(cbind, lol)
for (t in 1:length(m)) {
if (is.null(m[t][[1]])) {
m[t][[1]] = NA
}
}
m2 = apply(m, 2, unlist)
df = as.data.frame(m2)
return(df)
}
上述函数可以转化,但感觉有点笨拙。求更优雅的方法。谢谢!