私は次のデータセット(サンプル)があります:私は手動で列名を入力プログラムときには正常に動作しますpurrrを使ってきちんとした評価関数をループする方法は?
get_charts1 <- function(mygroup){
quo_var <- enquo(mygroup)
train %>%
group_by(!!quo_var) %>%
count() %>%
ungroup() %>%
ggplot(aes_q(x = quo_var, y = quote(n), fill = quo_var)) +
geom_col() +
theme(legend.position = "none")
}
:私はgroup_by()
操作のためのggplotを示し、以下の機能を持っている
train <- data.frame(ps_ind_06_bin = c(FALSE, FALSE, FALSE, TRUE, TRUE, FALSE),
ps_ind_07_bin = c(FALSE, TRUE, TRUE, FALSE, TRUE, TRUE),
ps_ind_08_bin = c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE),
ps_ind_09_log = c(1, 3, 4, 2, 3, 2))
を例えば:
get_charts1(ps_ind_07_bin)
はしかし、私はベクター上に置くいくつかの列、上の機能を使用したい:
binarias <- train %>%
select(ends_with("bin")) %>%
colnames()
マップを使用していくつかの提案を取って、私が使用しようとした:
listaplots <- map(quo(!!! syms(binarias)), get_charts1)
しかし、これは私に次のエラーを与える:
"Error: Can't splice at top-level"
誰もが私が何をする必要があるか知っていますこれを動作させるには?
簡単です'map(quos(ps_ind_06_bin、ps_ind_07_bin)、get_charts1)'のようなksは動作しませんので、問題は実際には展開ではありません。 'map()'のように、パラメータの評価を強制しているようです。 – MrFlick
強制的なオブジェクト(強制的なquosureまたはシンボルを含む)のキャプチャは、次のrlangバージョンでそのまま使用できます。これは引用符を取り除くことと同じです。 – lionel
[誰かが私の質問に答えたときに何をすべきですか?](https://stackoverflow.com/help/someone-answers) – zx8754