Как добавить столбцы во фрейм данных в R с помощью dplyr


Вы можете использовать функцию mutate() из пакета dplyr, чтобы добавить один или несколько столбцов во фрейм данных в R.

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

Способ 1: добавить столбец в конец фрейма данных

df %>%
 mutate (new_col=c(1, 3, 3, 5, 4))

Способ 2: добавить столбец перед определенным столбцом

df %>%
 mutate (new_col=c(1, 3, 3, 5, 4),
 .before=col_name)

Способ 3: добавить столбец после определенного столбца

df %>%
 mutate (new_col=c(1, 3, 3, 5, 4),
 .after=col_name)

Способ 4: добавить столбец на основе других столбцов

df %>%
 mutate (new_col= if_else (.$col_name > 10, 'A', 'B'))

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

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
 points=c(12, 14, 19, 24, 24, 22, 30, 9),
 assists=c(4, 6, 6, 8, 3, 7, 8, 11))

#view data frame
df

 team points assists
1 A 12 4
2 A 14 6
3 A 19 6
4 A 24 8
5 B 24 3
6 B 22 7
7 B 30 8
8 B 9 11

Пример 1: Добавить столбец в конце фрейма данных

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

#add 'blocks' column at end of data frame
df <- df %>%
 mutate (blocks=c(1, 3, 3, 2, 4, 3, 6, 2))

#view data frame
df

 team points assists blocks
1 A 12 4 1
2 A 14 6 3
3 A 19 6 3
4 A 24 8 2
5 B 24 3 4
6 B 22 7 3
7 B 30 8 6
8 B 9 11 2

Обратите внимание, что вы можете добавить пустой столбец, просто назначив NA каждому значению в новом столбце:

#add empty column at end of data frame
df <- df %>%
 mutate (blocks=NA)

#view data frame
df

 team points assists blocks
1 A 12 4 NA
2 A 14 6 NA
3 A 19 6 NA
4 A 24 8 NA
5 B 24 3 NA
6 B 22 7 NA
7 B 30 8 NA
8 B 9 11 NA

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

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

#add 'blocks' column before 'points' column
df <- df %>%
 mutate (blocks=c(1, 3, 3, 2, 4, 3, 6, 2),
 .before=points)

#view data frame
df

 team blocks points assists
1 A 1 12 4
2 A 3 14 6
3 A 3 19 6
4 A 2 24 8
5 B 4 24 3
6 B 3 22 7
7 B 6 30 8
8 B 2 9 11

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

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

#add 'blocks' column after 'points' column
df <- df %>%
 mutate (blocks=c(1, 3, 3, 2, 4, 3, 6, 2),
 .after=points)

#view data frame
df

 team points blocks assists
1 A 12 1 4
2 A 14 3 6
3 A 19 3 6
4 A 24 2 8
5 B 24 4 3
6 B 22 3 7
7 B 30 6 8
8 B 9 2 11

Пример 4. Добавление столбца на основе других столбцов

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

#add 'status' column whose values depend on value in 'points' column
df <- df %>%
 mutate (status= if_else (.$points > 20, 'Good', 'Bad'))

#view data frame
df

 team points assists status
1 A 12 4 Bad
2 A 14 6 Bad
3 A 19 6 Bad
4 A 24 8 Good
5 B 24 3 Good
6 B 22 7 Good
7 B 30 8 Good
8 B 9 11 Bad

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

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

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

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