0
で関数を配置:変数によってデータフレームを配置する私はdplyrを利用する関数を作成しながら、新しい現状の機能を使用しようと、次の問題に遭遇していますdplyr 0.7.1
df <- tibble(
g1 = c(1, 1, 2, 2, 2),
g2 = c(1, 2, 1, 3, 1),
a = sample(5),
b = sample(5)
)
は簡単です:
my_arrange <- function(df, arrange_var) {
quo_arrange_var <- enquo(arrange_var)
df %>%
arrange(!!quo_arrange_var)
}
しかし、優先順を設定する場合はどうすればよいですか?たとえば、任意のアレンジ変数は2を先頭変数とし、通常のソートを行います。 dplyrの以前のバージョンで私が使用します。
arrange(-(arrange_var == 2), arrange_var)
が、新しい構造に私がアプローチする方法がわからないです。私はまた、quo_nameを使用してみましたが
my_arrange <- function(df, arrange_var) {
quo_arrange_var <- enquo(arrange_var)
df %>%
arrange(-!!quo_arrange_var==2, !!quo_arrange_var)
}
を私はエラーに
Error in arrange_impl(.data, dots) :
incorrect size (1) at position 1, expecting : 5
を得る:
my_arrange <- function(df, arrange_var) {
quo_arrange_var <- enquo(arrange_var)
df %>%
arrange(-!!(paste0(quo_name(quo_arrange_var), "==2")), !!quo_arrange_var)
}
が、このエラーを取得する:
Error in arrange_impl(.data, dots) :
Evaluation error: invalid argument to unary operator.
私が試してみました任意の助けをいただければ幸いです
大変ありがとうございます。 – jonmaestro