如何";堆栈";及;“取消堆叠”;在R中,用于包含2个因素的汇总统计
我试图从以下数据集中计算两个汇总统计数据(平均值和标准误差),其中位置和成人都应该是因素如何";堆栈";及;“取消堆叠”;在R中,用于包含2个因素的汇总统计,r,ggplot2,reshape2,R,Ggplot2,Reshape2,我试图从以下数据集中计算两个汇总统计数据(平均值和标准误差),其中位置和成人都应该是因素 Location Adult OverComp F 1 7 P 1 8 P 0 10 F 1 3 F 0 11 我希望输出如下所示: Location Adult OverComp.m Over
Location Adult OverComp
F 1 7
P 1 8
P 0 10
F 1 3
F 0 11
我希望输出如下所示:
Location Adult OverComp.m OverComp.se
F 1 (mean) (standard error)
F 0 (mean) (standard error)
P 1 (mean) (standard error)
P 0 (mean) (standard error)
其中,OVERVP.m是位置x的每个组合的计算平均值,OVERVP.se是这些组合中每个组合的标准误差。我想要这种格式,因为我想在ggplot2中使用这种格式,以制作四种方式的条形图&se,位置的颜色编码
我已经走了这么远:
summary.OverComp <-data.frame(
+ Location=levels(as.factor(data$FLocation)),
+ MeanOverComp=tapply(data$OverComp, list(data$FLocation,data$Adult), mean),
+ se=tapply(data$OverComp, list(data$FLocation,data$Adult),std.error))
我现在有点不知所措——不确定是采用不同的绘图方法,还是对上述输出进行转换,还是找出如何在摘要编码中加入成人因素。我有一个线索,重塑可能涉及,但不知道如何处理这一点。非常感谢您的帮助 这是聚合的典型用法,聚合是一个基本(实际上是stats pkg)函数:
> aggregate(dat$OverComp, # the values being aggregated
dat[-3], # the grouping factors
function(Ov) c(mean=mean(Ov), sd=sd(Ov) ) #aggregation function(s)
)
Location Adult x.mean x.sd
1 F 0 11.000000 NA
2 P 0 10.000000 NA
3 F 1 5.000000 2.828427
4 P 1 8.000000 NA
如果您在看到NA的三个类别中有多个项目,则会出现更具吸引力的输出。您可以尝试
数据。表
(如果dat
是数据集)
让您的生活更轻松,在ggplot中使用
stat\u summary
(参见帮助页面中的示例)或使用软件包(Hadley的plyr或dplyr或Matt的data.table)。OP希望计算SE而不是SDE。可能此变体:库(plotrix);mean.se
> aggregate(dat$OverComp, # the values being aggregated
dat[-3], # the grouping factors
function(Ov) c(mean=mean(Ov), sd=sd(Ov) ) #aggregation function(s)
)
Location Adult x.mean x.sd
1 F 0 11.000000 NA
2 P 0 10.000000 NA
3 F 1 5.000000 2.828427
4 P 1 8.000000 NA
library(plotrix)
library(data.table)
setDT(dat)[,list(OverComp.m=mean(OverComp),
Overcomp.se=std.error(OverComp)), by=list(Location, Adult)]
Location Adult OverComp.m Overcomp.se
#1: F 1 5 2
#2: P 1 8 NA
#3: P 0 10 NA
#4: F 0 11 NA