Часто вам может понадобиться изменить порядок столбцов во фрейме данных в 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. Перемещение столбца в первую позицию
Следующий код показывает, как переместить определенный столбец во фрейме данных на первую позицию:
#move column 'points' to first position
df %>% select(points, everything() )
points player position rebounds
1 12 a G 5
2 15 b F 7
3 19 c F 7
4 22 d G 12
5 32 e G 11
Этот код указывает dplyr сначала выбрать столбец точек, а затем включить все остальные столбцы после точек.
Пример 2. Переместить столбец в последнюю позицию
Следующий код показывает, как переместить определенный столбец во фрейме данных в последнюю позицию:
#move column 'points' to last position
df %>% select(-points, points)
player position rebounds points
1 a G 5 12
2 b F 7 15
3 c F 7 19
4 d G 12 22
5 e G 11 32
Этот код указывает dplyr выбрать все столбцы, кроме столбца с очками, а затем снова выбрать столбец с очками. Это приводит к перемещению столбца точек в последнюю позицию во фрейме данных.
Пример 3: изменение порядка нескольких столбцов
В следующем коде показано, как изменить порядок нескольких столбцов одновременно в определенном порядке:
#change all column names to uppercase
df %>% select(rebounds, position, points, player)
rebounds position points player
1 5 G 12 a
2 7 F 15 b
3 7 F 19 c
4 12 G 22 d
5 11 G 32 e
Пример 4. Изменение порядка столбцов в алфавитном порядке
Следующий код показывает, как упорядочить столбцы в алфавитном порядке:
#order columns alphabetically
df %>% select(order(colnames(.)))
player points position rebounds
1 a 12 G 5
2 b 15 F 7
3 c 19 F 7
4 d 22 G 12
5 e 32 G 11
Пример 5: Обратный порядок столбцов
В следующем коде показано, как изменить порядок столбцов во фрейме данных:
#reverse column order
df %>% select(rebounds:player, everything() )
rebounds points position player
1 5 12 G a
2 7 15 F b
3 7 19 F c
4 12 22 G d
5 11 32 G e
Примечание.Полную документацию по функции select() можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в dplyr:
Как выбрать столбцы по индексу с помощью dplyr
Как выбрать столбцы по имени с помощью dplyr
Как добавить столбцы во фрейм данных с помощью dplyr