如何将此列表转换为R中具有相同名称的数据帧?

时间:2017-10-05 01:40:53

标签: r dataframe

我在R中有以下数据:

list0 <- list(ff = 45,gg = 23)
list1 <- list(a = 2, b=list0)
LIST <- list(mylist = list1)

我想将此列表转换为数据帧并获取如下输出数据帧,其中包含以下列标题命名约定:

  a b.ff b.gg
1 2   45   23

感谢任何帮助。

3 个答案:

答案 0 :(得分:5)

LIST步骤是不必要的:

> data.frame(list1)
  a b.ff b.gg
1 2   45   23

答案 1 :(得分:4)

vec <- unlist(LIST)
names(vec) <- sub("mylist.", "", names(vec))
dt <- data.frame(as.list(vec))

dt
  a b.ff b.gg
1 2   45   23

答案 2 :(得分:2)

您还可以do.calldata.frame一起构建data.frame并包含unname以删除第一个列表级别的名称。

mydf <-do.call(data.frame, unname(LIST))

mydf
  a b.ff b.gg
1 2   45   23

确保对象具有所需的结构。

str(mydf)
'data.frame':   1 obs. of  3 variables:
 $ a   : num 2
 $ b.ff: num 45
 $ b.gg: num 23