【问题标题】:Drop number of columns by vector of column names in R通过R中的列名向量删除列数
【发布时间】:2016-12-18 03:35:46
【问题描述】:

我想知道如何使用管道中的列名向量从数据框/数据表中删除许多列。到目前为止,我正在尝试这样的事情:

del_cols <- c("colname 1", "colname 2", "colname 4")

new_data <- old_data %>%
     select_(del_cols)

但是,这不起作用。我还尝试如下定义要删除的列:

del_cols <- c("colname 1, colname 2, colname 4")

但这也失败了。

任何帮助将不胜感激!

【问题讨论】:

标签: r dplyr multiple-columns removeall


【解决方案1】:

dplyr 中,使用-one_of

cnames <- c("cyl", "disp", "mpg")
mtcars %>% select(-one_of(cnames)) %>% head

                   hp drat    wt  qsec vs am gear carb
Mazda RX4         110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     110 3.90 2.875 17.02  0  1    4    4
Datsun 710         93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 175 3.15 3.440 17.02  0  0    3    2
Valiant           105 2.76 3.460 20.22  1  0    3    1

【讨论】:

    【解决方案2】:

    这将删除 del_cols 中的列

    newdata<-old_data[,!names(old_data) %in% del_cols]
    

    【讨论】:

      猜你喜欢
      • 2020-02-04
      • 2019-12-11
      • 2013-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多