合并多个csv文件后如何删除标头(名称)

时间:2019-05-27 09:48:41

标签: r

我想以相同的格式合并来自多个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

2 个答案:

答案 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)