如何使用列列表从数据框中删除多个列

时间:2018-07-12 17:59:53

标签: r dplyr tidyverse

我有一个带有列名和数据框的变量列表。当列名称与变量列表匹配时,我想从数据框中删除列。

列->“ a”,“ c”
数据框->

a b c d  
0 0 1 1  
1 1 1 1  

输出->

b d  
0 1  
1 1

请帮助我解决问题。

2 个答案:

答案 0 :(得分:2)

更新:Anders Swanson指出,您现在可以将select用于标准评估。所以下面的工作:

select(dataframe, -columns)

以前的版本

您可以将select_与'-'一起使用,如下所示:

# create data 
columns <- c("a","c")
dataframe <- read.table(text="a b c d
0 0 1 1
1 1 1 1 ", header = TRUE)
# load dplyr package
require(dplyr)
# select columns
select_(dataframe, .dots = paste0("-", columns))

答案 1 :(得分:1)

从dplyr 0.7起,不推荐使用

select_。有关更多信息,请参见select_文档。

我相信推荐的新方法是使用选择辅助动词。

使用shadow的示例。这将是: select(dataframe, -one_of(c("a", "b"))