温馨提示:本文翻译自stackoverflow.com,查看原文请点击:r - Convert elements of list to dataframe keeping column names unchanged
list r

r - 将列表元素转换为数据框,同时保持列名不变

发布于 2020-03-27 12:06:39

我有一个包含几个元素的列表。我想将这些元素转换为单独的数据帧。但是,我不知道如何保留列名。请参见下面的代码。

for (i in 1: length(mylist)) {
 assign(paste("df_",names(mylist[i]),sep = ""), as.data.frame(data.frame(mylist[i]),
col.names = names(dfi)))
}
names(df_april)

> names(df_april)
[1] "april.X"              "april.Latitude"       "april.month"          "april.count1"         "april.AOT40_1"        "april.count_full"    
[7] "april.AOT40_2"        "april.State.Code"     "april.County.Code"    "april.Longitude"      "april.Datum"          "april.Parameter.Name"
[13] "april.State.Name"     "april.County.Name"    "april.year"           "april.method"

如您在上面看到的,我尝试使用as.data.framewith define col.names = names(dfi)来消除那些列名称中的“ april”。但这没有用。

任何想法?

查看更多

查看更多

提问者
Yabin Da
被浏览
198
akrun 2019-07-04 00:25

在OP的代码中,将更[改为,[[因为第一个仍然是list长度为1的a ,并且也具有列表名称,而第二个则[[提取了list元素。因此,自然地,当我们执行时as.data.framelist元素名称也会在展平该元素时被附加

for (i in seq_along(mylist)) {
    assign(paste("df_",names(mylist[[i]]),sep = ""), mylist[[i]],
         col.names = names(dfi)))
  }
names(df_april)

注意:最好不要在全局环境中创建多个对象。