我想洗掉大型資料集中的重音“é”,但僅適用于串列中的字串。
下面是一個可復制的小示例:
library(tidyverse)
library(stringr)
library(dplyr)
library(tidyr)
library(stringi)
data <- data.frame (territory = c("Abbécourt", "Achéres", "Beaumé", "Belvezé",
"Marré"))
# I create a list of string for which I want to remove the accent
strings<-c("Abbécourt","Achéres","Belvezé")
strings <- paste(paste0("^", strings[order(-nchar(strings))], "$"), collapse = "|")
我要做的是:
data <- data %>% dplyr::mutate(territory = gsub("é", "e", territory))
但當然該命令會洗掉資料集中的所有“é”。
我找不到獲得以下輸出的方法:
territory
1 Abbecourt
2 Acheres
3 Beaumé
4 Belveze
5 Marré
非常感謝您的幫助,最好的問候,
uj5u.com熱心網友回復:
創建一個條件case_when/ifelse
來檢查%in%
字串元素的存在,然后只修改這些元素gsub/str_replace_all
library(stringr)
library(dplyr)
data %>%
mutate(territory = case_when(territory %in% strings ~
str_replace_all(territory, "é", "e"), TRUE ~ territory))
-輸出
territory
1 Abbecourt
2 Acheres
3 Beaumé
4 Belveze
5 Marré
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/527686.html
標籤:r