Как удалить столбцы в R (с примерами)


Часто вам может понадобиться удалить один или несколько столбцов из фрейма данных в R. К счастью, это легко сделать с помощью функции select() из пакета dplyr .

library(dplyr)

В этом руководстве показано несколько примеров использования этой функции на практике с использованием следующего фрейма данных:

#create data frame
df <- data.frame(player = c('a', 'b', 'c', 'd', 'e'),
 position = c('G', 'F', 'F', 'G', 'G'),
 points = c(12, 15, 19, 22, 32),
 rebounds = c(5, 7, 7, 12, 11))

#view data frame
df

 player position points rebounds
1 a G 12 5
2 b F 15 7
3 c F 19 7
4 d G 22 12
5 e G 32 11

Пример 1: удаление столбцов по имени

В следующем коде показано, как удалить столбцы из фрейма данных по имени:

#remove column named 'points'
df %>% select(-points)

 player position rebounds
1 a G 5
2 b F 7
3 c F 7
4 d G 12
5 e G 11

Пример 2: удаление столбцов в списке

В следующем коде показано, как удалить столбцы из фрейма данных, которые находятся в определенном списке:

#remove columns named 'points' or 'rebounds'
df %>% select(-one_of('points', 'rebounds')) 

 player position
1 a G
2 b F
3 c F
4 d G
5 e G

Пример 3: удаление столбцов в диапазоне

В следующем коде показано, как удалить все столбцы в диапазоне от «позиция» до «отборы»:

#remove columns in range from 'position' to 'rebounds'
df %>% select(-(position:rebounds)) 

 player
1 a
2 b
3 c
4 d
5 e

Пример 4. Удаление столбцов, содержащих фразу

В следующем коде показано, как удалить все столбцы, содержащие слово «точки».

#remove columns that contain the word 'points'
df %>% select(-contains('points')) 

 player position rebounds
1 a G 5
2 b F 7
3 c F 7
4 d G 12
5 e G 11

Пример 5. Удаление столбцов, начинающихся с определенных букв

Следующий код показывает, как удалить все столбцы, начинающиеся с букв «po»:

#remove columns that start with 'po'
df %>% select(-starts_with('po')) 

 player rebounds
1 a 5
2 b 7
3 c 7
4 d 12
5 e 11

Пример 6. Удаление столбцов, заканчивающихся определенными буквами

В следующем коде показано, как удалить все столбцы, оканчивающиеся на букву "s":

#remove columns that end with 's'
df %>% select(-ends_with('s')) 

 player position
1 a G
2 b F
3 c F
4 d G
5 e G

Пример 7: удаление столбцов по положению

Следующий код показывает, как удалить столбцы в определенных позициях:

#remove columns in position 1 and 4
df %>% select(-1, -4) 

 position points
1 G 12
2 F 15
3 F 19
4 G 22
5 G 32

Примечание.Полную документацию по функции select() можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции с помощью dplyr:

Как удалить строки с помощью dplyr
Как удалить строки со значениями NA с помощью dplyr
Как выбрать столбцы по индексу с помощью dplyr