是否有可能编写函数f()
,我可以将其用于对我们可以严格使用的列集进行子集化:data[, f(c("var1", "var2", "var3"))]
而不使用data
作为参数,{{1}可能是这样的:
f()
但我们可以以某种方式调用f <- function(data_frame, minus_colnames)
return colnames(data_frame)[which(!colnames(data_frame)%in%minus_colnames)]
而不明确指向f
数据框,如:
data
不喜欢
data[, f(c("var1", "var2", "var3"))]
(没有data[, f(data, c("var1", "var2", "var3"))]
)?
这对我来说是最合适的语法
答案 0 :(得分:4)
subset(data, select= -c(var1, var2, var3))
或
data[,!names(data) %in% c("var1","var2","var3"))]
或@DavidArenburg建议
setdiff(names(data), c("var1", "var2", "var3")
dplyr::select
是另一种选择;我确信也有data.table
解决方案。