从数据框中删除命名变量的温和方法

时间:2015-11-11 13:10:57

标签: r dataframe

是否有可能编写函数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"))])?

这对我来说是最合适的语法

1 个答案:

答案 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解决方案。