2
我使用绘制一些分布:取平均geom_density(Y = ..计数..)在分组变量
geom_density(aes(my.variable,
color=my.factor,
group=my.replicates,
y=..count..))
我要绘制在重复的平均值行(对于my.factor的每个水平一行),考虑到我没有在my.factor的每个级别中重复的次数相同 - >我不能删除'group'参数,因为..count ..取决于重复次数。因此,我要喜欢的东西等..count ../重复的数目
这里是上下文和可再现为例
我在第2个生境(a和b)采样:每个单独的鱼数量和身体大小。 我在栖息地之间采取了不同的取样工作。 (ra和rb是在栖息地a和b内采样的重复次数,分别) 我对栖息地之间在鱼类丰度和体型上的平均差异感兴趣。但是,我不知道如何处理这个事实,即我没有相同数量的复制品。
DATA
#number of replicat
ra=4;rb=6
#number of individuals (lambda of poisson distribution)
na=30;nb=60
#size of individuals (lambda of poisson distribution)
sa=90;sb=80
#data for habitat a
dfa=data.frame()
for (ri in 1:ra){
habitat="a"
nb_rep=ra
replicat=paste("r",ri,sep="")
size=rpois(rpois(1,na),sa)
dfa=rbind.data.frame(dfa,data.frame(habitat,nb_rep,replicat,size))
}
#data for habitat b
dfb=data.frame()
for (ri in 1:rb){
habitat="b"
nb_rep=rb
replicat=paste("r",ri,sep="")
size=rpois(rpois(1,nb),sb)
dfb=rbind.data.frame(dfb,data.frame(habitat,nb_rep,replicat,size))
}
#whole data set
df=rbind(dfa,dfb)
PLOTS
require(ggplot2)
summary(df)
密度
ggplot(df,aes(size,color=habitat))+
geom_density(aes(y=..density..))
计数
ggplot(df,aes(size,color=habitat))+
geom_density(aes(y=..count..))
但是,这有失偏颇,如果栖息地尚未与同样的努力 即不同数量的重复
的计数抽样,考虑不同的重复
ggplot(df,aes(size,color=habitat,group=paste(habitat,replicat)))+
geom_density(aes(y=..count..))
从这个最后的情节,如何在获得平均线复制? 谢谢
非常感谢你,这是非常好的。不过,我认为你必须做一些小修改。您将'平均数'计算为'平均密度'x'观测总数(即nrow(dat))。它应该是'平均密度'x'平均观测数量',它是nrow(dat)/ nlevels(droplevels(dat $ replicat)) – Pierre
我试着用我的修改代码,它工作正常。我为每个栖息地生成具有不同重复次数(例如,ra = 5; rb = 10)的数据,但是来自相同分布(例如na = nb = 60; sa = sb = 90)。平均线与预期完全一样。再次感谢。 – Pierre
关于如何测试栖息地之间“平均分布”差异的任何想法?我目前只看到(1)kolmogorov-Smirnov关于重复数据集中的数据,或者(2)Kruskall Wallis比较中值大小。对不起,这个问题不是在正确的地方,而是在上下文中。 – Pierre