一般的なタスクは、データセットのさまざまなサブセットに対して特定の統計分析 (anova、glm、または混合モデルなど) を実行し、出力テーブルを単一のデータフレーム内の要約係数および p 値と組み合わせる必要があることです。モデルのタイプ(aov(...)
またはlm(...)
またはまたはglm(...)
などglmer(...)
)と、グループ化変数( s) 自分のデータセット内。
データフレーム内のさまざまなレベルの因子「複製」に対して特定の分析を実行したいデータフレームがあるとしますdata
。
data(iris)
library(car)
data=data.frame()
for (i in 1:10) {data=rbind(data,cbind(replicate=i,iris))}
を使用してbroom+dplyr
、たとえば、このデータフレームの各サブセットに対して anova を実行し (レプリケートによるグループ化)、次を使用して用語「種」の p 値を保持できます。
library(devtools)
install_github("dgrtwo/broom")
library(broom)
library(dplyr)
group_by(data, replicate) %>% do(tidy(Anova(aov(Sepal.Length ~ Species, data = .),type="III"))) %>% filter(term=="Species")
Source: local data frame [10 x 6]
Groups: replicate [10]
replicate term sumsq df statistic p.value
(int) (chr) (dbl) (dbl) (dbl) (dbl)
1 1 Species 189.6364 2 362.6614 2.580311e-94
2 2 Species 189.6364 2 362.6614 2.580311e-94
3 3 Species 189.6364 2 362.6614 2.580311e-94
4 4 Species 189.6364 2 362.6614 2.580311e-94
5 5 Species 189.6364 2 362.6614 2.580311e-94
6 6 Species 189.6364 2 362.6614 2.580311e-94
7 7 Species 189.6364 2 362.6614 2.580311e-94
8 8 Species 189.6364 2 362.6614 2.580311e-94
9 9 Species 189.6364 2 362.6614 2.580311e-94
10 10 Species 189.6364 2 362.6614 2.580311e-94
(ここでは例として、10 個の同一のデータ サブセットを使用しました)
私はAnovabygroup
、データフレーム、グループ化変数 (ここreplicate
では、いくつかのグループ化変数の組み合わせである可能性もあります)、実行するモデルのタイプ (たとえば、このcase'aov(Sepal.Length ~ Species, data = .)'
ですが、lm、glm、lme、lmer、glmer モデル、または によって処理されるその他のモデルでもかまいません。Anova()
) および係数と p 値を返す因子 (おそらくすべてを返すオプション "all" を使用) を引数として指定します (指定された他のオプションは、Anova の呼び出しに渡すことができます)。上記で使用したものと同様のコードを使用して、これらの引数を取るために一般化されたコードを使用して、これを行う方法を知っている人はいますか? 私がどうしたらよいか分からない主なことは、モデル (例えば、この場合は `'aov(Sepal.Length ~ Species, data = .)') を引数として渡し、それを評価させることです。それとも、すでにいくつかのパッケージに存在している可能性がありますか? 私はいつもこのタスクを何度も何度もコーディングしているので、これは役立つと思います...
PS現在のCRANバージョンはAnova出力をうまく処理していないようなので、ほうきパッケージのgithubバージョンを使用しました