这应该是一个简单的问题,但我正在努力。
我有一个我想从数据框中排除的变量名称向量:
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_()
有什么想法吗?
答案 0 :(得分:10)
答案 1 :(得分:1)
你可以写:
df %>% dplyr::select(colname)
有些包也有选择功能,这可能是问题所在,所以你需要提到包。
答案 2 :(得分:0)
使用select_
,您只需使用setdiff
。
select_(df, .dots = setdiff(colnames(df), excluded_vars))
答案 3 :(得分:0)
您几乎就在那里了,只需在-c()
中使用exclude_vars
。
像这样:
select(df, -c(excluded_vars))
答案 4 :(得分:0)
从dplyr的最新版本开始,以下内容现在有效:
select(df, -excluded_vars)
答案 5 :(得分:0)
只需简单地使用否定运算符:
select(df, !c(col1, col2, col3))