r - R 用gsub替換多個字母

  显示原文与译文双语对照的内容
99 3

當然,我可以替換如下的特定參數:

 mydata=c("á","é","ó")
 mydata=gsub("á","a",mydata)
 mydata=gsub("é","e",mydata)
 mydata=gsub("ó","o",mydata)
 mydata

但是確實有一種更簡單的方法可以在onle行中完成這一切,對吧?我找不到gsub幫助在這個方面非常全面。

时间:原作者:0个回答

66 0

使用字元轉換功能

chartr("áéó","aeo", mydata)
原作者:
102 1

一個有趣的問題我認為最簡單的選擇是設計一個特殊的函數,類似於"多" gsub(): !

mgsub <- function(pattern, replacement, x,.. .) {
 if (length(pattern)!=length(replacement)) {
 stop("pattern and replacement do not have the same length.")
 }
 result <- x
 for (i in 1:length(pattern)) {
 result <- gsub(pattern[i], replacement[i], result,.. .)
 }
 result
}

這給了我:

> mydata <- c("á","é","ó")
> mgsub(c("á","é","ó"), c("a","e","o"), mydata)
[1]"a""e""o"
原作者:
...