gpt4 book ai didi

regex - 如何增加 gsub() 替换字符串?

转载 作者:行者123 更新时间:2023-12-02 21:25:55 32 4
gpt4 key购买 nike

假设一个数据框有很多列,全部都写着“bonus”。目标是使用附加数字对每个奖金列进行唯一重命名。示例数据:

string  <- c("bonus", "bonus", "bonus", "bonus")
string
[1] "bonus" "bonus" "bonus" "bonus"

所需的列名称输出:

[1] "bonus1" "bonus2" "bonus3" "bonus4"

假设您不知道有多少个奖励列,因此您不能简单地将 1 到该列数粘贴到每个奖励列名称。

以下方法有效,但似乎不优雅,并且似乎太硬编码:

bonus.count  <- nrow(count(grep(pattern = "bonus", x = string)))
string.numbered <- paste0(string, seq(from = 1, to = bonus.count, 1)

gsub 函数(或其他基于正则表达式的函数)如何替换递增的数字?沿着

的思路
string.gsub.numbered  <- gsub(pattern = "bonus", replacement = "bonusincremented by one until no more bonuses", x = string)

最佳答案

据我所知,gsub 无法对每个结果运行任何类型的函数,但使用 regexprregmatches 可以做到这一点很简单

string  <- c("bonus", "bonus", "bonus", "bonus")
m <- regexpr("bonus",string)
regmatches(string,m) <- paste0(regmatches(string,m), 1:length(m))
string
# [1] "bonus1" "bonus2" "bonus3" "bonus4"

好的部分是 regmatches 允许分配,因此可以轻松交换匹配的值。

关于regex - 如何增加 gsub() 替换字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24367973/

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