【发布时间】:2016-05-06 12:47:23
【问题描述】:
我有一个包含 300 列数据的数据框。 我创建了一个包含 126 个元素的向量,这些元素是 300 个中 126 个的列名。 我想根据不在我的 126 中来对 300 进行子集化。它们不是按顺序排列的,所以我不能简单地通过指定 -1:-126 来删除。
我用 grep 和矩阵运算尝试了各种方法,但没有奏效。比如下面这行不通。 x 有 300 列。 f 包含我想从 x1 中排除的 126 个列名的向量。
x1<-x[,-which(names(x), %in% f)]
如果我确定使用一个或多个变量名,我可以让它工作,但我不想输入 f 中的 126 个元素。
【问题讨论】:
-
为了进一步说明,我希望能够像指定 f=c(element1of_f, element2of_f, ... , element126of_f) 一样使用 f 中的元素
-
x[, !names(x) %in% f]? -
您是否使用了来自 dplyr 的选择和参数:start_with、end_with、包含...?
-
x%>% select(-f) -> x1 应该适用于您的示例
标签: r