我在函数中创建数据帧时遇到了一个奇怪的问题。但是,在 data.frame 之外使用相同的方法效果很好!
这是基本函数,我用它来计算数据集的平均值、标准差和标准误差:
aggregateX<- function(formula, dataset){
output<-aggregate(formula, dataset, mean) #calculate mean
sdev<-aggregate(formula, dataset, sd) #calculate sd
output$sd<-sdev[length(sdev)] #place sd in same data.frame
output$se<-output$sd/sqrt(max(as.numeric(dataset$P))) #calculate se
names(output$sd)<-"sd";names(output$se)<-"se" #attatch correct names
return(output)
}
该函数可以工作,但有一种奇怪的方法将 data.frame 组合为输出。第一个变量(均值)的格式正确,但标准差和标准误差都被构造为数据帧第一行内的向量。
i.e. when you view the output in RStudio it looks something like this:
这并不重要,但是 ggplot2 在尝试处理这个不寻常的 data.frame 时遇到了一些困难。任何有关如何在没有奇怪向量的情况下形成 data.frame 的建议将不胜感激。
这将起作用:
aggregateX<- function(formula, dataset){
denom <- sqrt(max(as.numeric(dataset$P)))
aggregate(formula, dataset, function(x){
s <- sd(x)
c(mean=mean(x),sd=s,se=s/denom)
})
}
假设dataset
有一个名为P
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)