使用lapply或plyr对类别进行重复分析
我一直在做一些我认为很简单的事情——将一个数据帧子集,然后打印几个测试的输出,在类别上重复 本着避免for循环的精神,我尝试了lappy,但它似乎用方差分析覆盖了单向 我也试过dlply,它不运行使用lapply或plyr对类别进行重复分析,r,R,我一直在做一些我认为很简单的事情——将一个数据帧子集,然后打印几个测试的输出,在类别上重复 本着避免for循环的精神,我尝试了lappy,但它似乎用方差分析覆盖了单向 我也试过dlply,它不运行 library(plyr) dat<-data.frame(value=rnorm(300), aCategory=rep(1:3, c(100, 100, 100)), bCategory=rep(1:2, 30
library(plyr)
dat<-data.frame(value=rnorm(300),
aCategory=rep(1:3, c(100, 100, 100)),
bCategory=rep(1:2, 300)
)
aFunc<-function(cat){
sub<-subset(dat, aCategory=="cat")
oneway.test(value~bCategory, dat)
summary(aov(value~bCategory, dat))
}
lapply(unique(dat$aCategory), aFunc)
dlply(dat, .(aCategory), summarise,
oneway.test(value~bCategory),
summary(aov(value~bCategory))
)
库(plyr)
dat一个函数只能有一个返回值。试试这个:
aFunc<-function(cat){
#sub<-subset(dat, aCategory==cat)
#help(subset) warns against using subset inside functions
sub <- dat[dat$aCategory==cat,]
list(oneway.test(value~bCategory, sub),
summary(aov(value~bCategory, sub)))
}
lapply(unique(dat$aCategory), aFunc)
aFuncYou可能不应该重复进行单向方差分析,而是进行双向方差分析,为代码中的错误道歉,我应该检查这些。非常感谢你的帮助,那就行了。了解函数中的子集也很有用-我没有发现这一点