我想以相同的格式合并来自多个csv文件的数据,以便我可以对其进行分析,但是我无法从多个合并的文件中删除标题/列名。
我使用lapply
函数来获取所有这些文件的上下文列表,看起来像这样:
ID X1 X2 ---> header of 1st csv file
1 5 6
2 6 9
.......
10 7 8
。
ID X1 X2 --> headers 2nd csv file
1 5 6
2 6 9
.......
10 7 8
e.t.c
如何删除标题字符以对这些数据进行数学运算?
我的代码:
data<-lapply(files, read.csv)
mean <-(mean(data$column2, na.rm=TRUE))
我也尝试了read.csv(headers=FALSE)
,但是当函数位于lapply内部时,R不接受它
我期望合并文件的数据帧的平均值,但出现错误:
mean.default(data $ column2,na.rm = TRUE):参数不是 数字或逻辑:返回NA
答案 0 :(得分:0)
您可以直接导入数据而无需列名:
read_matrix <- function (csvfile) {
a <- read.csv(csvfile, header=FALSE)
matrix(as.matrix(a), ncol=ncol(a), dimnames=NULL)
}
df <- read_matrix('even_iops_Jan15.csv')
另一个选择是将它们设置为null:
names(df) <- NULL
答案 1 :(得分:0)
如果您正确阅读了带有标题的data
,我想您需要做的是首先提取列,然后取mean
。
您可以提取列
1)按名称
mean(sapply(data, `[[`, 'column2'), na.rm = TRUE)
2)按位置
mean(sapply(data, `[[`, 2), na.rm = TRUE)
使用lapply
,您需要先unlist
数据
mean(unlist(lapply(data, `[[`, 'column2')), na.rm = TRUE)