0

我有多个文件,其中包含列中的值(每个文件的列都相同)。现在我想计算所有文件中每一列的平均值或标准差等值,例如output_value1 = mean(file1_value1, file2_value1, ..., filen_value1). 我有很多文件,所以手工操作显然不是一种选择。

如何计算例如新表中的平均值,如下例所示?

# INPUT
################

file1.txt
id, value1, value2
1,  10,     100
2,  5,      25
3,  10,     50

file2.txt
id, value1, value2
1,  2,      200
2,  7,      15
3,  10,     50

file3.txt
id, value1, value2
1,  3,      30
2,  6,      5
3,  10,     100

# OUTPUT
################

id value1 value2
1  5      110
2  6      15
3  10     66.6

我已经设法通过使用读取数据

Files <- Sys.glob("*.txt")
m <- lapply(Files, read.csv, header=TRUE, comment.char="#")

我该如何从这里继续?

4

1 回答 1

2

使用data.table库:

library(data.table)

# reading each file as a data.table. Bonus - fread is much faster than read.csv
m <- lapply(Files, fread, header=TRUE, comment.char="#")

#compiling into one dataset
m2 <- rbindlist(m)

#calculating mean by id over each column
m2[,lapply(.SD,mean),by="id"]
于 2013-11-01T08:13:22.580 回答