我有以下字符串:

a = "in the year 2010-01-01 there was a red dog and in the year 2011-01-01 there was a blue cat"

My Problem:在上面的字符串中,我想用2011替换every 2010,用2012替换every 2011.

我try 了以下代码:

b = gsub("2010", "2011", a)
b = gsub("2011", "2012", b)

但它覆盖了我的进步!

我用3条简短的声明做到了这一点:

b = gsub("2010", "temp", a)
b = gsub("2011", "2012", b)
b = gsub("temp", "2011", b)

但是,有没有一种更快的方法在一行代码中完成这项工作?

推荐答案

如果我理解正确,您只需先更换2011至2012年,然后按顺序更换2010至2011年:

b <- gsub("2011", "2012", b, fixed=TRUE)
b <- gsub("2010", "2011", b, fixed=TRUE)

更一般地,您可以使用带有回调函数的正则表达式替换.

R相关问答推荐

更改网格的crs以匹配简单要素点对象的crs

是否可以 Select 安装不带文档的R包以更有效地存储?

管道末端运行功能

为什么st_join(ob1,ob2,left = True)返回具有比ob1更多功能的sf对象?

将复杂的组合列表转换为数据框架

抖动点与嵌套类别变量箱形图的位置不对齐

如何根据组大小应用条件过滤?

在特定Quarto(reveal.js)幻灯片上隐藏徽标

用相同方法得到不同函数的ROC最优截断值

如何在modelsummary中重命名统计数据?

将嵌套列表子集化为嵌套列表

使用across,starts_with和ifelse语句变更多个变量

使用R闪光显示所有数据点作为默认设置

如何得到每四个元素向量R?

提取一个列表中单个列的重复观察结果R

为了网络分析目的,将数据框转换为长格式列联表

使用data.table::fcase()而不是dplyr::case_When()时保持值

通过比较来自多个数据框的值和R中的条件来添加新列

带有Bootswatch Cerulean主题的shiny 仪表板中的浏览&按钮可见性问题

R:改进实现简单模型