Вы можете использовать следующий базовый синтаксис для замены нескольких значений во фрейме данных в R с помощью функций из пакета dplyr :
library(dplyr)
df %>%
mutate(var1 = recode(var1, 'oldvalue1' = 'newvalue1', 'oldvalue2' = 'newvalue2'),
var2 = recode(var2, 'oldvalue1' = 'newvalue1', 'oldvalue2' = 'newvalue2'))
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: замена нескольких значений с помощью dplyr
Предположим, у нас есть следующий фрейм данных в R, который содержит информацию о различных баскетболистах:
#create data frame
df <- data.frame(conf=c('East', 'East', 'West', 'West', 'North'),
position=c('Guard', 'Guard', 'Guard', 'Guard', 'Forward'),
points=c(22, 25, 29, 13, 18))
#view data frame
df
conf position points
1 East Guard 22
2 East Guard 25
3 West Guard 29
4 West Guard 13
5 North Forward 18
Теперь предположим, что мы хотели бы заменить следующие значения во фрейме данных:
- столбец «конф»:
- Замените «Восток» на «Е».
- Замените «Запад» на «W».
- Замените «Север» на «N».
- столбец «позиция»:
- Замените «Страж» на «G».
- Замените «Вперед» на «F»
Для этого мы можем использовать функции mutate() и recode() :
library(dplyr)
#replace multiple values in conf and position columns
df %>%
mutate(conf = recode(conf, 'East' = 'E', 'West' = 'W', 'North' = 'N'),
position = recode(position, 'Guard' = 'G', 'Forward' = 'F'))
conf position points
1 E G 22
2 E G 25
3 W G 29
4 W G 13
5 N F 18
Обратите внимание, что каждое из значений в столбцах «conf» и «position» было заменено определенными значениями.
Также обратите внимание, что значения в столбце «баллы» не изменились.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи с помощью dplyr:
Как перекодировать значения с помощью dplyr
Как заменить NA на ноль в dplyr
Как отфильтровать строки, содержащие определенную строку, с помощью dplyr