我想要删除大型数据集中的重音"é",但仅针对列表中的字符串.

下面是一个可复制的小例子:

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é

非常感谢你的帮助, 诚挚的问候,

推荐答案

创建一个包含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é

R相关问答推荐

为什么以及如何修复Mapview不显示所有点并且st_buffer合并一些区域R?

如何创建构成多个独立列条目列表的收件箱框列?

列出用m n个值替换来绘制n个数字的所有方法(i.o.w.:R中大小为n的集合的所有划分为m个不同子集)

检测(并替换)字符串中的数学符号

将年度数据插入月度数据

在某些栏和某些条件下,替换dfs列表中的NA

如何在所有绘图中保持条件值的 colored颜色 相同?

如何在观测缺失的地方添加零

无法正确设置动态创建的Quarto标注的格式

绘制采样开始和采样结束之间的事件

为什么在BASE R中绘制线条时会看到线上的点?

根据约束随机填充向量的元素

R+reprex:在呈现R标记文件时创建可重现的示例

使用geom_iles在一个切片中包含多个值

在不重复主题的情况下重新排列组

将数据从一列转换为按组累计计数的单个虚拟变量

Data.table::Shift type=允许扩展数据(&Q;LAG&Q;)

R没有按顺序显示我的有序系数?

识别部分重复行,其中一行为NA,其重复行为非NA

根据小时-分钟列创建年-月-日序列