簡體   English   中英

循環的單向方差分析:如何通過 dataframe 的多個列啟動

[英]One-way ANOVA for loop: how do I initiate through multiple colums of a dataframe

這是我第一次來這里,所以請 go 簡單。 我想運行超過 1000 種不同的單向方差分析我想看看來自單個 mirroRNA 的讀取數量是否在四個不同的組之間發生變化。 我希望從 1000 多個 miRNA 中的每一個中獲取。 我的 tibble dataframe 看起來像這樣:我有 4 個組(YC、OC、YH、OH),每列中有不同的 miRNA。

在此處輸入圖像描述我嘗試了一個 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)}

但這不起作用:錯誤:“for(i in 2:ncol(test)){column<-names(test[i])AVz”中出現意外符號如果有人能幫助我,我將不勝感激

如果你想運行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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM