R: Как добавить столбец во фрейм данных на основе других столбцов


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

#add new column 'col3' with values based on columns 1 and 2
df$col3 <- with (df, ifelse (col1 > col2, value_if_true, value_if_false))

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

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

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

#create data frame
df <- data.frame(team=c('Mavs', 'Cavs', 'Spurs', 'Nets'),
 scored=c(99, 90, 84, 96),
 allowed=c(95, 80, 87, 95))

#view data frame
df

 team scored allowed
1 Mavs 99 95
2 Cavs 90 80
3 Spurs 84 87
4 Nets 96 95

#add 'result' column based on values in 'scored' and 'allowed' columns
df$result <- with (df, ifelse (scored > allowed, 'Win', 'Loss'))

#view updated data frame
df

 team scored allowed result
1 Mavs 99 95 Win
2 Cavs 90 80 Win
3 Spurs 84 87 Loss
4 Nets 96 95 Win

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

#create data frame
df <- data.frame(team=c('Mavs', 'Cavs', 'Spurs', 'Nets'),
 scored=c(99, 90, 84, 96),
 allowed=c(95, 80, 87, 95))

#view data frame
df

 team scored allowed
1 Mavs 99 95
2 Cavs 90 80
3 Spurs 84 87
4 Nets 96 95

#add 'quality' column based on values in 'scored' and 'allowed' columns
df$quality <- with (df, ifelse (scored > 95, 'great',
 ifelse (scored > 85, 'good', 'bad')))

#view updated data frame
df

 team scored allowed quality
1 Mavs 99 95 great
2 Cavs 90 80 good
3 Spurs 84 87 bad
4 Nets 96 95 great

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

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

#create data frame
df <- data.frame(team=c('Mavs', 'Cavs', 'Spurs', 'Nets'),
 scored=c(99, 90, 84, 96),
 allowed=c(95, 80, 87, 95))

#view data frame
df

 team scored allowed
1 Mavs 99 95
2 Cavs 90 80
3 Spurs 84 87
4 Nets 96 95

#add 'lower_score' column based on values in 'scored' and 'allowed' columns
df$lower_score <- with (df, ifelse (scored > allowed, allowed, scored))

#view updated data frame
df

 team scored allowed lower_score
1 Mavs 99 95 95
2 Cavs 90 80 80
3 Spurs 84 87 84
4 Nets 96 95 95

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

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

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