用gsub替换带有重音符号的多个字母

73
当然,我可以像这样替换特定的参数:
    mydata=c("á","é","ó")
    mydata=gsub("á","a",mydata)
    mydata=gsub("é","e",mydata)
    mydata=gsub("ó","o",mydata)
    mydata

但肯定有更简单的方法可以在一行内完成所有操作,对吗? 我觉得gsub函数的帮助文档并不是很全面。


1
如果你想要用相同的东西替换不同的模式,可以使用 lapply 完成,但是因为你想要用不同的字符串替换不同的模式,我认为你仍然必须指定这些方式之一... - juba
2
你可以尝试使用 chartr 来完成这个任务。 - Andrie
31
gsubfn包中的gsubfn函数是gsub函数的一般化,可以在一次调用中完成替换操作:gsubfn(".", list("á"="a", "é"="e", "ó"="o"), c("á","é","ó")) - G. Grothendieck
@G.Grothendieck。太好了,而且适用于所有类型的字符。非常有价值的评论。谢谢! - Joschi
1
对于寻找此问题更一般解决方案的人,以下是更有帮助的答案:https://dev59.com/J2sz5IYBdhLWcg3w47-m#7664655 - Ben
@G.Grothendieck,你能否将这个也发布为答案,这样未来的访客就可以看到它了吗? - Sam Firke
11个回答

0

你也可以使用gsub将它们组合起来:

mydata <- gsub("á","a", gsub("é","e", gsub("í","i", gsub("ó","o", gsub ("ú", "u", mydata)))))


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接