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


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

Способ 1: заменить одну строку новой строкой

library(dplyr)
library (stringr) 

df %>% 
 mutate(across('column_name', str_replace, 'old_value', 'new_value'))

Способ 2: заменить несколько строк новой строкой

library(dplyr)
library (stringr) 

df %>% 
 mutate(across('column_name', str_replace, 'old_value1|old_value2', 'new_value'))

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

#create data frame
df <- data.frame(conf=c('East', 'East', 'West', 'West'),
 position=c('P_Guard', 'P_Guard', 'S_Guard', 'S_Guard'),
 points=c(22, 25, 29, 13))

#view data frame
df

 conf position points
1 East P_Guard 22
2 East P_Guard 25
3 West S_Guard 29
4 West S_Guard 13

Пример 1: заменить одну строку новой строкой

Следующий код показывает, как заменить строку «East» в столбце conf на строку «Eastern»:

library(dplyr)
library (stringr)

#replace 'East' with 'Eastern' in conf column
df %>% 
 mutate(across('conf', str_replace, 'East', 'Eastern'))

 conf position points
1 Eastern P_Guard 22
2 Eastern P_Guard 25
3 West S_Guard 29
4 West S_Guard 13

Обратите внимание, что каждая строка «East» была заменена на «Eastern» в столбце conf , а все остальные столбцы остались без изменений.

Пример 2. Замена нескольких строк новой строкой

В следующем коде показано, как заменить строку «P_» и «S_» в столбце conf пустой строкой:

library(dplyr)
library (stringr)

#replace 'P_' and 'S_' with empty string in position column
df %>% 
 mutate(across('position', str_replace, 'P_|S_', ''))

 conf position points
1 East Guard 22
2 East Guard 25
3 West Guard 29
4 West Guard 13

Обратите внимание, что каждая строка «P_» и «S_» была заменена пустой строкой в столбце position , а все остальные столбцы остались без изменений.

Обратите внимание, что мы использовали оператор «ИЛИ» ( | ), чтобы сообщить R, что мы хотели бы заменить любые строки, равные «P_» или «S_», пустой строкой.

Не стесняйтесь использовать столько операторов «ИЛИ» ( | ), сколько хотите, чтобы заменить столько значений, сколько хотите, в столбце одновременно.

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

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

Как перекодировать значения с помощью dplyr
Как заменить NA на ноль в dplyr
Как отфильтровать строки, содержащие определенную строку, с помощью dplyr

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