我有一个包含几个元素的列表。我想将这些元素转换为单独的数据帧。但是,我不知道如何保留列名。请参见下面的代码。
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.frame
with define col.names = names(dfi)
来消除那些列名称中的“ april”。但这没有用。
任何想法?
在OP的代码中,将更[
改为,[[
因为第一个仍然是list
长度为1的a ,并且也具有列表名称,而第二个则[[
提取了list元素。因此,自然地,当我们执行时as.data.frame
,list
元素名称也会在展平该元素时被附加
for (i in seq_along(mylist)) {
assign(paste("df_",names(mylist[[i]]),sep = ""), mylist[[i]],
col.names = names(dfi)))
}
names(df_april)
注意:最好不要在全局环境中创建多个对象。
问题仍然存在。问题是将元素转换为数据框后,应如何在数据框中保留名称?我不是要命名列表中的元素。
问题是在将列表元素转换为数据帧之后,我需要进行一些操作。不能对list元素进行这些操作
mylist2[[1]]
。太棒了。万分感谢。我才意识到之间的差别
mylist[1]
和mylist[[1]]
。