Как изменить порядок столбцов в 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. Перемещение столбца в первую позицию

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

#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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.