2017-06-29 10 views
0

データフレームの各列に対して、別の列に基づいて一方向ANOVAを実行する必要があります。私のデータフレームは57の列を持っているので、すべての列名をタイプするのに非常に時間がかかります。私のデータフレームの一部です。各列の一方向ANOVA

だから基本的に、私はすべての列

AOVのために、この機能の実行を必要とする(DF $ PGY_16〜DF $ Total_Time_cm_16、DF)

だから、私は、データフレーム内のすべての列のためにそれを実行するためのループを必要とします。 ご協力いただければ幸いです!ありがとうございました!再現性

+0

。 – Enigma

答えて

2

、以下のコードは、内蔵mtcarsデータフレームを使用し、各リスト要素は、データフレーム内の他のすべてのカラムとmtcars$cylaovモデルであるリストを返します。我々は、purrrパッケージ(tidyverseパッケージの一部である)からのmapを使用して、データフレームの各列で連続してaovを実行するようにします。あなたのデータのために

library(tidyverse) 

aov.models = mtcars[ , -grep("cyl", names(mtcars))] %>% 
    map(~ aov(mtcars$cyl ~ .x)) 

、類似したコードは次のようになりますシンプルな `lapply`が何をすべき

aov.models = df[ , -grep("PGY_16", names(df))] %>% 
    map(~ aov(df$PGY_16 ~ .x)) 
関連する問題