gpt4 book ai didi

用 R 中的向量替换列表

转载 作者:行者123 更新时间:2023-12-04 23:21:10 26 4
gpt4 key购买 nike

我需要做很多替换。我正在使用 gsub。我想知道是否有可能做一些事情,比如当我想用 a 替换所有 á 和用 e 替换所有 é 时:

gsub(c("á","é"),c("a","e"),"ána belén")

使用这个,我得到一个错误。

如果这是不可能的,是否还有其他功能可以这样做?

最佳答案

是的,有chartr :

chartr("áé" ,"ae","ána belén")
# [1] "ana belen"

编辑 由于您现在要求一个可以处理整个单词的更通用的函数,因此我会这样做:
rgsub <- function(pattern, replacement, x) {
ARGS <- Map(c, pattern = pattern, replacement = replacement)
FUN <- function(x, y) gsub(y[['pattern']], y[['replacement']], x)
Reduce(FUN, ARGS, x)
}

为了表明它给出与 qdap 相同的结果但有点快:
i <- c("cat", "dog", "mouse")
j <- c("lion", "bulldog", "elephant")
k <- c("cat", "dog", "dog", "mouse", "ant", "mouse")

identical(mgsub(i, j, k), rgsub(i, j, k))
# [1] TRUE

library(microbenchmark)

microbenchmark(mgsub(i, j, k), rgsub(i, j, k))
# Unit: microseconds
# expr min lq median uq max neval
# mgsub(i, j, k) 586.60 608.6920 629.7840 659.2415 1278.973 100
# rgsub(i, j, k) 81.91 88.9305 97.0165 107.2390 229.835 100
qdap可能对很多事情都很好,但对于您的特定应用程序来说可能有点矫枉过正。

关于用 R 中的向量替换列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26394050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com