gpt4 book ai didi

regex - R gsub 一次替换多个文本

转载 作者:行者123 更新时间:2023-12-01 11:29:39 24 4
gpt4 key购买 nike

在我的数据框中有一列包含乘数指标,例如千、亿、百万等,作为文本

我想将它们转换为数字。这是我试过的:

a <- c("Thousands", "thousands", "Hundreds", "hundreds")
newA <- as.numeric(gsub("[Tt]housands","1000",gsub("[Hh]undreds","100",a)))

这行得通,但是当乘数很多时(就是这种情况),结果会非常麻烦。我在想应该有一种方法可以在一次 gsub 调用中完成,但没能做到。像这样的东西是我想要的(当然这个特殊的尝试没有奏效):

as.numeric(gsub("^.*-","",gsub("([Hh]undreds)([Tt]housands)","\\1-100 \\2-1000",a)))

最佳答案

尝试:

library(qdap)
as.numeric(multigsub(c("[Tt]housands", "[Hh]undreds"), c(1000, 100), fixed = FALSE, a))

或者按照@RichardScriven 的建议:

library(stringi)
as.numeric(stri_replace_all_regex(a, c("[Tt]housands", "[Hh]undreds"), c(1000, 100),
vectorize_all = FALSE))

关于regex - R gsub 一次替换多个文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33742256/

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