web-dev-qa-db-ja.com

dplyr:ベクトルに含まれる変数を除くすべての変数を選択します

これは単純な問題であるはずですが、私は苦労しています。

データフレームから除外する変数名のベクトルがあります。

_df <- data.frame(matrix(rexp(50), nrow = 10, ncol = 5))
names(df) <- paste0(rep("variable_", 5), 1:5)

excluded_vars <- c("variable_1", "variable_3")
_

_-_を使用してselectステートメントでオブジェクトを除外するだけでうまくいくと思いました。

_select(df, -excluded_vars)
_

しかし、次のエラーが表示されます。

-excluded_varsのエラー:単項演算子への無効な引数

select_()を使用する場合も同じです

何か案は?

7
Shinobi_Atobe

one_of関数を使用する必要があります。

select(df, -one_of(excluded_vars))

変数名に基づく選択の詳細については、 selectdplyrドキュメントの便利な関数のセクションを参照してください。

14
C. Braun

Dplyrの最新バージョンでは、以下が機能するようになりました。

select(df, -excluded_vars)
2
Shinobi_Atobe

_exclude_vars_で-c()を使用するだけです。
このような:

_select(df, -c(excluded_vars))
_
1
vpz

select_、単純にsetdiffを使用できます。

select_(df, .dots = setdiff(colnames(df), excluded_vars))
1
erocoar