为什么我的 data.frame 列是列表?

sds*_*sds 5 r dataframe

我有一个 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)

我想知道是否可以修改这种表达方式,使其生成正常的数据表。

MrF*_*ick 2

我建议做

do.call(rbind,lapply(my.list, function (m)
  data.frame(name = ...,
       tvd = ...)))
Run Code Online (Sandbox Code Playgroud)

而不是尝试将列表列表转换为 data.frame