我是新的R和目前我工作的参与者数据,我想运行的每一个类别的方差分析。
我使用以下代码从CSV读取我的数据:
CSV <- read.csv("data.csv", header=TRUE)
矢量CSV现在有很多。12个变量中。最后一个变量描述组,其中前11个变量是每个类别。我希望通过根据第12个变量的值将数据分成组来运行ANOVA,并对每个变量2-11运行一个ANOVA。
如何根据第12个变量将数据分成N个组,并对每个变量2-11进行方差分析?
发布于 2014-10-22 20:55:25
在文件中阅读:
CSV <- read.csv("data.csv", header=TRUE)
将索引设置为12、上界和下界,以便在类别中进行迭代:
lenCSV <- 12
upper <- 11
lower <- 2
遍历类别并输出摘要:
for( j in lower:upper) {
fm <- as.formula(paste(names(CSV[j])," ~", names(lenCSV)))
fit<-aov(fm,data=CSV)
print(fit)
}
发布于 2014-10-21 23:48:53
我有点搞不懂你说的每个变量的方差是什么意思。下面是一个循环,它遍历第12个变量的每个值,对数据进行细分,然后运行ANOVA。您需要更改"y ~ x“部分,因为我不知道您的因变量/自变量是什么。如果您想对每个变量运行ANOVA,您可能需要另一个循环,我在下面尝试过。
for(i in unique(CSV[,12])) {
data<-subset(CSV, subset=CSV[,12]==i)
fit <- aov(y ~ x, data=data)
fit
}
对于每个变量
`%ni%`<-Negate(`%in%`) ##setting up 'not in'
for(i in unique(CSV[,12])) {
data<-subset(CSV, subset=CSV[,12]==i)
for( j in 1:11) {
fm <- as.formula(paste(names(data[,j])," ~", paste(names(data)[names(data) %ni% names(data[,j])], collapse = "+")))
fit<-aov(fm,data=data)
fit #you may want to output the results rather than printing them here
}
}
https://stackoverflow.com/questions/26497517
复制相似问题