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


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

Вариант 1. Используйте синтаксис столбца.

#define order of data frame columns
df <- df[c("col1", "col2", "col3", "col4")]

Вариант 2. Используйте синтаксис строк и столбцов.

#define order of data frame columns
df <- df[ , c("col1", "col2", "col3", "col4")]

В следующих примерах показано, как использовать эти два фрагмента кода на практике.

Пример 1. Переключение двух столбцов с использованием синтаксиса столбцов

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

#create data frame
df <- data.frame(col1=c(1, 2, 6, 3, 6, 6),
 col2=c(4, 4, 5, 4, 3, 2),
 col3=c(7, 7, 8, 7, 3, 3),
 col4=c(9, 9, 9, 5, 5, 3))

#view data frame
df

 col1 col2 col3 col4
1 1 4 7 9
2 2 4 7 9
3 6 5 8 9
4 3 4 7 5
5 6 3 3 5
6 6 2 3 3

#switch positions of first and third column
df <- df[c("col3", "col2", "col1", "col4")]

#view new data frame
df

 col3 col2 col1 col4
1 7 4 1 9
2 7 4 2 9
3 8 5 6 9
4 7 4 3 5
5 3 3 6 5
6 3 2 6 3

Пример 2. Переключение двух столбцов с использованием синтаксиса строк и столбцов

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

#create data frame
df <- data.frame(col1=c(1, 2, 6, 3, 6, 6),
 col2=c(4, 4, 5, 4, 3, 2),
 col3=c(7, 7, 8, 7, 3, 3),
 col4=c(9, 9, 9, 5, 5, 3))

#view data frame
df

 col1 col2 col3 col4
1 1 4 7 9
2 2 4 7 9
3 6 5 8 9
4 3 4 7 5
5 6 3 3 5
6 6 2 3 3

#switch positions of first and third column
df <- df[ , c("col3", "col2", "col1", "col4")]

#view new data frame
df

 col3 col2 col1 col4
1 7 4 1 9
2 7 4 2 9
3 8 5 6 9
4 7 4 3 5
5 3 3 6 5
6 3 2 6 3

Обратите внимание, что оба метода приводят к одинаковым результатам.

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

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