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 に答える