我几乎可以肯定我把这件事搞得太复杂了,但是我没有太多使用ggplot2的经验,所以任何建议都是受欢迎的!
我有一个大型数据集,其中包含男性和女性对3种刺激类型的4个变量的React。我使用聚合来计算性别对每个变量的每种刺激React的平均值和SD。示例如下所示。
dffull
Individual Sex var1 var2 var3 var4 stimulustype
A Male 10 1 4 6 A
B Male 3 9 9 10 A
C Female 9 10 7 9 A
D Female 8 5 2 5 A
A Male 1 3 1 7 B
B Male 9 5 2 3 B
C Female 8 1 2 4 B
D Female 8 4 4 10 B
A Male 1 8 2 7 C
B Male 1 10 6 3 C
C Female 8 1 5 2 C
D Female 8 7 5 8 C
#splitting main df into Male and Female
femaledf <-dffull[dffull$Sex=="Female",]
maledf <-dffull[dffull$Sex=="Male",]
mstim <- maledf$stimulustype
fstim <- femaledf$stimulustype
malemeans <- aggregate(cbind(var1, var2, var3, var4)~mstim, FUN=mean, na.rm=TRUE, na.action=NULL)
malesd <- aggregate(cbind(var1,var2,var3,var4)~mstim, FUN=sd, na.rm=TRUE, na.action=NULL)
femalemeans <- aggregate(cbind(var1, var2, var3, var4)~fstim, FUN=mean, na.rm=TRUE, na.action=NULL)
femalesd <- aggregate(cbind(var1,var2,var3,var4)~fstim, FUN=sd, na.rm=TRUE, na.action=NULL)
我想用SD作为误差线,一次画出男性和女性对每个刺激的React。
将df分为男性和女性是错误的吗?如果是,我如何计算每种性别的组特异性平均值和SD?或者我应该尝试按性别合并汇总结果吗?
编辑:我希望在x轴上有刺激类型,每种类型对应一个性别,每种性别对应一个变量。在下面的例子中,我希望用男性和女性代替基因1/2,用模拟A或B代替物种A/B。
1条答案
按热度按时间eqqqjvef1#
如果你在绘图前将数据重新调整为“整洁”的格式,并使用
dplyr
进行汇总,这样的事情会更容易。这将返回以下图