2016-08-11 39 views
-1

我想知道如何使用流水線中的列名稱向量從數據框/數據表中刪除多個列。直到現在我正在嘗試這樣的事情:刪除R中列名稱向量的列數

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") 

但是,這也出現了失敗。

任何幫助,將不勝感激!

+1

【如何使一個偉大的[R重複的例子?(http://stackoverflow.com/questions/5963269) – zx8754

+4

[按名稱刪除數據框列]可能重複(http://stackoverflow.com/questions/4605206/drop-data-frame-columns-by-name) – symbolrush

+0

最好在列中沒有空格名。 – akrun

回答

0

這將停止列del_cols

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

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