dplyr を使用して と の平均の差を計算し、3 番目の変数でグループ化する方法を知っている人はいsome_var == TRUE
ますsome_var == FALSE
か?
たとえば、次のデータフレームの例があるとします。
library('dplyr')
dat <- iris %>%
mutate(wide=Sepal.Width > 3) %>%
group_by(Species, wide) %>%
summarize(mean_width=mean(Sepal.Width))
dat
# A tibble: 6 x 3
# Groups: Species [?]
Species wide mean_width
<fctr> <lgl> <dbl>
1 setosa FALSE 2.900000
2 setosa TRUE 3.528571
3 versicolor FALSE 2.688095
4 versicolor TRUE 3.200000
5 virginica FALSE 2.800000
6 virginica TRUE 3.311765
wide == TRUE
種ごとにとの違いを持つ新しいデータ フレームを導出する方法を知っている人はいますwide == FALSE
か?
これは、いくつかのステートメントを使用して行うことができます。
false_vals <- dat %>% filter(wide==FALSE)
true_vals <- dat %>% filter(wide==TRUE)
diff <- data.frame(Species=unique(dat$Species), diff=true_vals$mean_width - false_vals$mean_width)
> diff
Species diff
1 setosa 0.6285714
2 versicolor 0.5119048
3 virginica 0.5117647
ただし、これは dplyr で直接達成できるはずです。
何か案は?