我想这很容易,尽管我的搜索毫无结果——
给定
z=data.frame(X.39=rnorm(20),X.40=rnorm(20),X.51=rnorm(20))
子集运算
z[,c('X.39','X.51')]
作品。但
z[,-c('X.39','X.51')]
给我
Error in -c("X.39", "X.51") : invalid argument to unary operator
为什么会这样?如何使用列名列表删除一组列?
编辑
我知道我可以随时使用
z[,!names(z) %in% c('X.39','X.51')]
但我正在寻找一个更懒惰的解决方案
编辑2
大多数讨论都在评论部分,但为了保持良好的秩序而关闭它,其要点是不可能使用更懒惰的解决方案(按名称直接引用)。这似乎是设计的。