我有一个 data.frame
'data.frame': 4 obs. of 2 variables:
$ name:List of 4
..$ : chr "a"
..$ : chr "b"
..$ : chr "c"
..$ : chr "d"
$ tvd :List of 4
..$ : num 0.149
..$ : num 0.188
..$ : num 0.161
..$ : num 0.187
structure(list(name = list("a", "b", "c",
"d"), tvd = list(0.148831029536996, 0.187699857380692,
0.161428147003292, 0.18652668961466)), .Names = c("name",
"tvd"), row.names = c(NA, -4L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
似乎as.data.frame(lapply(z,unlist))将其转换为通常的
'data.frame': 4 obs. of 2 variables:
$ name: Factor w/ 4 levels "a",..: 4 1 2 3
$ tvd : num 0.149 0.188 0.161 0.187
Run Code Online (Sandbox Code Playgroud)
但是,我想知道我是否可以做得更好。我像这样创建我丑陋的数据框:
as.data.frame(do.call(rbind,lapply(my.list, function (m)
list(name = ...,
tvd = ...))))
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以修改这种表达方式,使其生成正常的数据表。
我建议做
do.call(rbind,lapply(my.list, function (m)
data.frame(name = ...,
tvd = ...)))
Run Code Online (Sandbox Code Playgroud)
而不是尝试将列表列表转换为 data.frame