【发布时间】:2014-06-23 23:11:33
【问题描述】:
假设一个数据框有很多列都说“奖金”。目标是用附加的数字唯一地重命名每个奖金列。示例数据:
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)
【问题讨论】: