Как заменить строку в столбце с помощью 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'),
                 dots=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. Замена строки новой строкой

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

 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

Обратите внимание, что каждая строка «Восток» была заменена на «Восточный» в столбце 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_» была заменена пустой строкой в столбце позиции , а все остальные столбцы остались неизменными.

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *