从R中的数据子集创建汇总统计表

时间:2017-11-16 14:05:02

标签: r dplyr aggregate

我有一张看起来像这样的表:

Time     Carbon       OD
 0       Sucrose      1.13
 0       Citric acid  1.54
24       Histidine    2.1
24       Glutamine    1.7
48       Maleic acid  2.1
48       Furm acid    3.1
72       Tryptophan   2.3
72       Serine       1.2
72       etc          etc

它有四个时间点,9种不同的碳可分为三组(有机酸,糖,氨基酸)。

编辑 - 如果有用,则在每个时间点测量每个碳的OD 8次。以前我使用此代码来创建整个事物的摘要统计信息:

summary <- aggregate(dataset2$OD,
                   by = list(Time = dataset2$Time, Carbon = dataset2$Carbon),
                   FUN = function(x) c(mean = mean(x), sd = sd(x),
                                       n = length(x)))
summary <- do.call(data.frame, dataset2)
summary$se <- dataset2$x.sd / sqrt(dataset2$x.n)

但是,如果可能的话,现在我想为这三组中的每一组生成相同的汇总统计数据,所以我会得到这样的结果:

Time    Group    OD    SD    n    SE
  0     Group 1    
 24     Group 1 
 48     Group 1
 72     Group 1
  0     Group 2 

我不太确定如何在我的代码中指定它?

1 个答案:

答案 0 :(得分:2)

使用dplyr

dataset2 %>%
  group_by(Time, Group)
  summarise(OD = mean(OD),
            SD = sd(OD),
            n = n())