dplyr::do()
というdata.frameのサブグループに対してプロット関数を呼び出して、サブグループごとに1つのFigure(ggplotオブジェクト)を生成しようとしています。 I グループ化変数に基づいて各図のタイトルが必要です。これを行うには、私の関数はグループ化変数が何であるかを知る必要があります。do()によって呼び出される関数内からグループ化変数を見つける
は現在、どのような.
としてdo()
に渡されると、クラスtbl_df
とdata.frame
の目的です。明示的に別の変数として渡さなくても、data.frameを直接検査して、グループ化変数が何であるかを知ることができますか?
投稿されたソリューションhereは、(それぞれの)グループ化変数を関数の追加引数として明示的に渡す必要があります。私はグループ化変数のさまざまな数に拡張可能で、よりエレガントで一般的なソリューションがあるのだろうかと思います。この特定の例ではプロットに興味がありますが、各サブグループで呼び出される関数内でサブグループがどのように定義されているかを知りたい他のユースケースがあります。
それは私のデータと偽陽性 の多くにつながるとしているので、私は length(unique(col)) == 1
列を検索することで推測したくしたくありません。
これを行うにはエレガントな方法がありますか?
ここでは、開始するためのサンプルコードを示します。
library(ggplot2)
my_plot <- function(df) {
subgroup_name <- "" # ??
ggplot(aes(cty, hwy)) + geom_point() +
ggtitle(subgroup_name)
}
mpg %>%
group_by(manufacturer) %>%
do(my_plots = my_plot(.))
あなたは '試してみました既に、「facet_wrap」はありますか?実際に別のプロットが必要な場合は、グループ化変数でdata.frame splitを実行してプロット関数を適用することができますが、確かに他のアプローチがあります。 – alistaire