循环的单向方差分析:如何通过数据框的多列启动

Posted

技术标签:

【中文标题】循环的单向方差分析:如何通过数据框的多列启动【英文标题】:One-way ANOVA for loop: how do I initiate through multiple colums of a dataframe 【发布时间】:2022-01-17 01:40:08 【问题描述】:

我想运行 1000 多个不同的单向方差分析

我想看看单个 mirroRNA 的读取次数是否在四个不同组之间发生变化。我希望从 1000 多个 miRNA 中的每一个中提取。

我的 tibble 数据框如下所示:

我有 4 个组(YC、OC、YH、OH),每列都有不同的 miRNA。

enter image description here 我尝试了一个 for 循环,我希望 R 通过该循环遍历 miRNA 的名称,然后总结 ANOVA 表和 TukeyHSD 测试:

    for(i in 2:ncol(test))
column<-names(test[i])AVz<-summary(aov(test[,i]~Group,data = 
test))tk<-TukeyHSD((aov(test[,i]~Group,data = 
test)))print(column)print(AVz)print(tk)

但这不起作用:

Error: unexpected symbol in "for(i in 2:ncol(test))column<-names(test[i])AVz"

【问题讨论】:

我认为你不能在这里应用方差分析,因为 miRNA 计数通常不是正态分布的。您对计数使用了哪种标准化方法? 【参考方案1】:

如果你想运行aov,你可以使用cbind

 formula <- as.formula(paste0("cbind(", paste(names(iris)[-5], collapse = ","), ") ~ Species"))
    
    fit <- aov(formula, data=iris)
    summary(fit)

Response Sepal.Length :
             Df Sum Sq Mean Sq F value    Pr(>F)    
Species       2 63.212  31.606  119.26 < 2.2e-16 ***
Residuals   147 38.956   0.265                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

 Response Sepal.Width :
             Df Sum Sq Mean Sq F value    Pr(>F)    
Species       2 11.345  5.6725   49.16 < 2.2e-16 ***
Residuals   147 16.962  0.1154                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

 Response Petal.Length :
             Df Sum Sq Mean Sq F value    Pr(>F)    
Species       2 437.10 218.551  1180.2 < 2.2e-16 ***
Residuals   147  27.22   0.185                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

 Response Petal.Width :
             Df Sum Sq Mean Sq F value    Pr(>F)    
Species       2 80.413  40.207  960.01 < 2.2e-16 ***
Residuals   147  6.157   0.042                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

【讨论】:

以上是关于循环的单向方差分析:如何通过数据框的多列启动的主要内容,如果未能解决你的问题,请参考以下文章

R语言使用lmPerm包应用于线性模型的置换方法(置换检验permutation tests)在同一数据集上使用单向协方差分析(one-way ANCOVA)使用aovp函数的置换检验单向协方差

R语言单向多元方差分析MANOVA(one-way MANOVA)实战:multivariate analysis of variance

R语言之方差分析

python 的哪个统计模块支持单向方差分析和事后测试(Tukey、Scheffe 或其他)?

R语言单因素、多因素方差分析ANOVA analysis of variance

SPSS如何进行单因素方差分析