列を取り、それを dplyr、tidyr、および ggplot で使用する関数を作成するにはどうすればよいですか?
df <- data.frame(date_col = c(1,1,2,2,3,4,4,5,5),
col_a = c('a','b','a','b','a','a','b','a','b'),
val_col = runif(9))
param_col
ハードコーディングされた col_a の代わりにパラメーターを取る関数を作成するにはどうすればよいですか
df %>%
group_by(date_col, col_a) %>%
summarise(val_col = sum(val_col)) %>%
complete(col_a, date_col) %>%
ggplot(aes(date_col, val_col, color = col_a)) +
geom_line()
dplyr と ggplot の呼び出しは、以下に概説するコードで機能します。しかし、呼び出しはどのようcomplete
に書けばよいのでしょうか? それとも使うべきcomplete_
?
これを行うより標準的な方法はありますか?
plot_nice_chart <- function(df, param_col) {
enq_param_col <- enquo(param_col)
str_param_col <- deparse(substitute(param_col))
# aggregate data based on group_by_col,
# explicitly fill in NA's for missing to avoid interpolation
df %>%
group_by(!!enq_param_col, date_col) %>%
summarise(val_col = sum(val_col)) %>%
complete(<what-should-be-here?>, date_col) %>%
ggplot(aes_string("date_col", "val_col", color = str_param_col)) +
geom_line()
}