我有一个很长的字符串,部分是

x <- "Text1 q10_1 text2 q17 text3 q22_5 ..."

如何从"q"字母后的每个数字减go 1,以获得

y <- "Text1 q9_1 text2 q16 text3 q21_5 ..."

我可以从x中提取所有的数字:

numbers <- stringr::str_extract_all(x, "(?<=q)\\d+")
numbers <- as.integer(numbers[[1]]) - 1

但是如何用这些新数字更新x?

下一个不行

stringr::str_replace_all(x, "(?<=q)\\d+", as.character(numbers))

推荐答案

今天我学到了stringr::str_replace_all个函数:

stringr::str_replace_all(
  x, 
  "(?<=q)\\d+", 
  \(x) as.character(as.integer(x) - 1)
)

R相关问答推荐

如何在弹性表中为类别值的背景上色

警告:lmdif:info = 0. nls. lm()函数的输入参数不正确

如何写一个R函数来旋转最后n分钟?

R s iml包如何处理语法上无效的因子级别?'

如何使用STAT_SUMMARY向ggplot2中的密度图添加垂直线

如何对2个列表元素的所有组合进行操作?

根据列A中的差异变异列,其中行由列B中的相对值标识

绘制采样开始和采样结束之间的事件

根据1个变量绘制 colored颜色 发散的 map ,由另一个变量绘制饱和度,ggplot2不工作

如何将使用rhandsontable呈现的表值格式化为百分比,同时保留并显示完整的小数精度?

将多个列值转换为二进制

如何计算R glm probit中的线性预测因子?

使用不同的定性属性定制主成分分析中点的 colored颜色 和形状

提高圣彼得堡模拟的速度

使用R将简单的JSON解析为嵌套框架

在R中使用列表(作为tibble列)进行向量化?

将数据从一列转换为按组累计计数的单个虚拟变量

策略表单连接两个非常大的箭头数据集,而不会 destruct 内存使用

重写时间间隔模糊连接以减少内存消耗

如何在一个GGPLATE中绘制多个灰度平滑?