r - 将列表元素转换为数据框,保持列名不变
问题描述
我有一个包含几个元素的列表。我想将这些元素转换为单独的数据框。但是,我不知道如何保留列名。请看下面的代码。
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 definedcol.names = names(dfi)
来摆脱那些列名中的“april”。但它没有用。
任何的想法?
解决方案
在 OP 的代码中,将 更改[
为[[
第一个仍然是list
长度为 1 的 a 并且还有一个列表名称,而第二个[[
提取列表元素。因此,很自然,当我们执行 时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)
注意:最好不要在全局环境中创建多个对象。
推荐阅读
- xcode - 当我打开反应原生项目文件时,Xcode 11.6 崩溃
- python - Python 奇怪的结果
- angular - 包含 Angular 代码的 HTML 的 Angular 父组件渲染
- javascript - 如何通过单击屏幕上的任意位置并单击侧边栏按钮本身来制作关闭侧边栏的功能?
- swift - 单击按钮Swift时是否可以更改ARKit场景的对象
- exe - 当当前工作目录是 /mnt/c 的子目录时,为什么 .exes 在 Windows Subsystem for Linux 中看不到 /tmp 中的文件?
- r - 在 R 数据框中的单个单元格中放置换行符
- android - 使用delphi在Android下的TWebbrowser中全屏观看youtube或其他视频时出现问题
- reactjs - setFieldValue 总是从多选下拉菜单中设置值 boolean true
- python - 无法合并输出中的列表