如何在R中合并多个数据系列

时间:2011-01-28 18:59:24

标签: r statistics

我正在使用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
...

3 个答案:

答案 0 :(得分:4)

Stack Overflow中有很多问题可以帮到你。尝试使用“[r]多个文件”进行搜索(省略引号)。 [r]将搜索限制为仅标记为r的问题。

Here's a question可能会得到你需要的东西

搜索

here's an example

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