【发布时间】:2019-07-27 12:29:56
【问题描述】:
我在多个 CSV 文件中有来自活动记录仪设备的数据。我想从这些文件中提取三行并将它们合并到一个数据框中。
问题是第一行只有第一列有数据(想想 Excel 中的 1A),但有些行有 13 列中的数据。因此缺少几个列名。
我首先尝试像这样组合所有 csv 文件:
file.list <- list.files(pattern='*.csv')
df.list <- sapply(file.list, read.csv, simplify=FALSE)
library(dplyr)
df <- bind_rows(df.list, .id = "id")
这里的第二个命令给出了“不允许重复的'row.names'”错误。我尝试添加 row.names=NULL 参数,但这会导致“输入中没有可用的行”错误消息。
对于单个数据文件,我可以通过先命名列然后对数据进行子集化来实现所需的结果:
test <- read.csv("test3.csv",header=FALSE)
names(test) <-c("Column.A","Column.B","Column.C","Column.D","Column.E","Column.F","Column.G",
"Column.H","Column.I","Column.J","Column.K", "Column.L", "Column.M")
bar <- subset(test, Column.A =="Identity:" | Column.A == "Interval Type"| Column.A == "Sleep Summary" & Column.B == "Average(n)")
如何对给定文件夹中的所有 csv 文件重复类似的过程?
谢谢!
【问题讨论】: