ggplot2で複数の因子によるグループで折れ線プロット

各因子を結合した列を追加すればいいっちゃいいのだが、ggplot2上で指定する方法もあったよなと思いながら思い出せなかった+ググりづらかったのでこれも備忘。

interaction()を使う。


library(ggplot2)
library(dplyr)

# ChickWeightデータで初回の体重が43以上か否かのフラグを立てる

summarised_weight <- ChickWeight %>% 
group_by(Chick) %>% 
mutate(flag = weight[Time==0]>=43) %>% 
ungroup %>% 
group_by(Time, Diet, flag) %>% 
summarise(w_mean = mean(weight))

# Dietとflagを組みわせた折れ線プロットを描く
ggplot(summarised_weight, aes(Time, w_mean, color = interaction(Diet, flag, sep = "_"))) + geom_line()

f:id:dichika:20190208193207p:plain

でもこれ別にpaste()でも問題ないな。