我正在使用R.做一些实验数据的统计处理。
我有多个文件,每个文件都有相同的结构。每个文件的每一行都在同一时间对不同的日期进行测量,因此一般结构如下所示:
time C1 C2 C3
19:00 200 10.0 30
19:01 220 10.0 45
...
我需要的是创建一个文件,其中包含来自多个文件的一列值的摘要,因此我将在每个时间连续几天获得C2的平均值和stdev。
time avg dev
19:00 205.0 30.0
19:01 220.0 10.0
...
答案 0 :(得分:4)
Stack Overflow中有很多问题可以帮到你。尝试使用“[r]多个文件”进行搜索(省略引号)。 [r]将搜索限制为仅标记为r的问题。
Here's a question可能会得到你需要的东西
搜索答案 1 :(得分:2)
创建Files
,一个文件名向量,假设文件名是指定的形式或其他形式。然后阅读这些文件,将read.table
与每个名称相对应,并将结果组合在一起,得到m
,其中包含所有表的所有行。最后aggregate
m
数据框。
Files <- Sys.glob("test_*.txt")
m <- do.call(rbind, lapply(Files, read.table, header = TRUE))
aggregate(m[-1], m[1], function(x) c(mean = mean(x), sd = sd(x)))
答案 2 :(得分:1)
library(plyr)
# Combine all the data
data=rbind(data1,data2,data3)
# to get the mean
ddply(data,.(time),numcolwise(mean))
# to get the sd
ddply(data,.(time),numcolwise(sd))
# You can combine both statements above into a single call and put the output into a data frame
resulting_data=data.frame(ddply(data,.(time),numcolwise(mean)),ddply(data,.(time),numcolwise(sd))[,-1])
# depending on the number of columns you have, name the output accordingly. For your example
names(resulting_data)c=('time','C1'..)