用模式替换 R 中的字符串并替换两个向量

2024-02-24

假设我有两个向量,如下所示:

a <- c("this", "is", "test")
b <- c("that", "was", "boy")

我还有一个字符串变量,如下所示:

string <- "this is a story about a test"

我想替换字符串中的值,使其变为以下内容:

string <- "that was a story about a boy"

我可以使用 for 循环来完成此操作,但我希望将其矢量化。我该怎么做?


如果您愿意使用非基础包,stringi在这里会工作得很好:

stringi::stri_replace_all_fixed(string, a, b, vectorize_all = FALSE)
#[1] "that was a story about a boy"

请注意,对于长度 > 1 的输入字符串,这也以相同的方式工作。

为了安全起见,您可以调整它 - 类似于 RUser 的答案 - 在替换之前检查单词边界:

stri_replace_all_regex(string, paste0("\\b", a, "\\b"), b, vectorize_all = FALSE)

这将确保您不会意外更换his with hwas, 例如。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用模式替换 R 中的字符串并替换两个向量 的相关文章

  • 整理包中的字段说明

    我很抱歉 因为我知道这个答案可能出现在编写 R 包的手册中 但在我阅读和查看其他包的整理字段时 我无法 100 弄清楚该字段的用途 用简单的语言 我的是英语 来看 包的描述文件中的整理字段有什么作用 人们想在那里放什么 我认为这来自于某个时
  • 在 R 中使用 ggplot2 叠加两个图

    有两个数据框 df1 df2我需要使用 ggplot2 创建线图并显示在同一个图表上 df1 x y 2 30 4 25 6 20 8 15 df2 x y 2 12 4 16 6 20 8 24 用于绘制第一个 df p1 lt ggpl
  • Powershell - 将字符串拆分为由开始和结束字符串划分的数组

    我有一个多行字符串 来自 json 例如 somekey somevalue somekey somevalue somekey somevalue somekey somenumber somekey null 我想将字符串拆分为一个数组
  • 使用 ggplot2 进行分面 qqplots

    假设我有以下数据 datapoints1 data frame categ c rep 1 n rep 2 n vals1 c rt n 1 2 rnorm n 3 4 datapoints2 data frame categ c rep
  • 贝叶斯网络中一个节点的条件概率修改(R代码)

    估计贝叶斯网络中的条件概率后 我问了一个节点 Inlet gas total Pressure 的概率如下 bn mle before Inlet gas total pressure 节点 Inlet gas total Pressure
  • 以对数刻度绘制较长的 y 轴刻度,刻度向外

    我之前有一篇关于在特定 y 轴值处绘制较长刻度的文章 在特定 y 轴值处绘制较长的刻度 https stackoverflow com questions 51335424 plotting longer ticks at particul
  • 使用 dplyr 进行括号转义的表名称

    我正在以编程方式获取一堆数据集 其中许多数据集都有以数字开头的愚蠢名称 并且其中包含特殊字符 例如减号 因为没有一个数据集特别大 而且我希望 R 能够对数据类型做出最好的猜测 所以我使用 dplyr 将这些表转储到 SQLite 中 我使用
  • 在 heatmap.2 中将行标签设置为斜体

    我正在尝试使用 R 函数将行标签设置为斜体heatmap 2 没有默认选项 我无法通过设置找到解决方法par font 3 例如 如何将行标签设置为斜体heatmap 2 set seed 123 data matrix sample 10
  • 通过 R 中的方向矩阵进行回溯

    我有一个这样的矩阵 https i stack imgur com mzeRI png https i stack imgur com mzeRI png 你可以像这样加载它 matrix structure c C G C A 0 V V
  • 如何在 Markdown 标题中强制换行?

    我在 rmarkdown 文档中有一个很长的标题 我想在特定位置强制换行 最小示例 title Quite long title want the line break at the asterisk output html documen
  • 使用 dplyr::mutate 重新编码而不在函数中工作

    我正在尝试使用dplyr mutate across 重新编码 a 中的指定列tbl 单独使用它们效果很好 但我无法让它们在函数中工作 library dplyr library tidyr df1 lt tibble Q7 1 1 5 Q
  • 库存推文、文本挖掘、表情符号错误

    我希望您能够协助进行文本挖掘练习 我对 AAPL 推文感兴趣 并且能够从 API 中提取 500 条推文 我自己克服了几个障碍 但最后一部分需要帮助 由于某种原因 tm 包没有删除停用词 您能看一下可能是什么问题吗 表情符号会引起问题吗 绘
  • 为什么 JavaScript 字符串有两种类型?

    这简直是 狠狠地刺伤了我 我不知道是否所有浏览器都是如此 我没有任何其他有能力的浏览器可以测试 但至少 Firefox 有两种字符串对象 打开 Firebugs 控制台并尝试以下操作 gt gt gt a a gt gt gt new St
  • 如何将一串空格分隔的数字拆分为整数?

    我有一根绳子 42 0 例如 并且需要获取两个整数的数组 我可以做一个 split在一个空间上 The obvious approach to this problem is a common combination of simple t
  • R data.table 使用列作为参数将函数应用于行

    我有以下内容data table x structure list f1 1 3 f2 3 5 Names c f1 f2 row names c NA 3L class c data table data frame 我想对每一行应用一个
  • 在 dplyr tbl_df 中获取删除列的最佳实践

    我记得 2001 年 r help 上的一条评论说drop TRUE in data frame是 R 历史上最糟糕的设计决策 dplyr纠正这一点并且不会隐式删除 当尝试将旧代码转换为dplyr风格 这会引入一些讨厌的错误d 1 or d
  • 如何使用 caret 包解释模型输出的准确性

    我正在使用 caret 包来训练模型 并希望获得模型的准确性 我听说的一种常见方法是使用confusionMatrix 然而 当我运行下面的代码时 经过训练的模型给出了一些与confuseMatrix 报告的精度值略有不同的精度值 所以我的
  • 包“diamonds”不可用(对于 R 版本 3.0.0)[重复]

    这个问题在这里已经有答案了 在我的 R 环境中拥有钻石包 数据集的简单方法是什么 我是使用 RStudio 3 0 的新手 gt install packages diamonds Warning in install packages p
  • dplyr 通过评估查找单元格值来改变特定列

    我已经使用定额 符号和求值探索了各种选项 但我似乎无法获得正确的语法 这是一个示例数据框 data frame A letters 1 4 B letters 26 23 C letters c 1 3 5 7 D letters c 2
  • 将最新的 R 安装路径从注册表添加到 PATH windows 7/8/10

    嗨 我是 Windows 批处理新手 我想向打电话的同事分发一个 runMe bat 文件Rscript myRfile R处理一些数据文件 但众所周知 我的同事在不同地方安装了 R 我不能指望他们知道如何将 Rscript 添加到 PAT

随机推荐

  • BigQuery Python 客户端库中查询结果的差异

    我想知道 query 的返回值和 query result 之间的区别 在 BigQuery Python 客户端库中 bigquery client bigquery Client myQuery SELECT FROM mytable
  • 将columnNames动态传递给cassandraTable().select()

    我在运行时读取文件的查询并在 SPark Cassandra 环境中执行它 我正在执行 sparkContext cassandraTable keyspaceName colFamilyName select col1 col2 col3
  • 如何关闭 PDO 句柄

    我正在使用 PDO 访问 PHP 中的两个 SQLite 3 数据库 我想在查询期间通过重命名数据库文件来切换数据库文件 但在文件打开时我无法执行此操作 因为它会给出文件正在被另一个进程使用的错误 我尝试关闭持久连接并将句柄设置为空 但都不
  • 从命令行模拟执行二进制文件?

    有没有办法从命令行在 Simics 模拟下执行简单的 Linux 二进制文件 就像是 simics some flags a out Simics 现在没有开箱即用的应用程序模式 或系统调用模式 根据需要 可以将有效负载编译为 ELF 文件
  • 在c#中的TREEVIEW中添加复选框

    我想添加复选框到我的应用程序中树视图中某个父节点的子节点 我应该如何添加它 TreeView拥有一个名为CheckBoxes 如果设置为true 它显示所有子节点的复选框
  • 可变长度表中的内存分配

    假设我在中定义了以下可变长度表WORKING STORAGE 01 SOAP RECORD 05 SOAP INPUT PIC X 8 VALUE SPACES 05 SOAP STATUS PIC 9 VALUE ZERO 05 SOAP
  • 将 Spongycastle 与 Proguard 一起使用

    我一直在努力使用 Proguard 来让 Spongycastle 正常工作 大多数时候 问题出现在我导出签名的 APK 时 要么出现错误 要么应用程序在启动前崩溃 因此 我设法收集信息以获得有效的混淆器配置 optimizationpas
  • 如何通过 Emacs 23.1 内置集成设置 SVN 密码?

    我正在 CentOS 6 2 上做一个项目 使用发行版提供的 Emacs 23 1 1 和使用 svnserver 的 subversion 我无法在任何地方找到如何设置存储库访问密码 关于此还有另一个问题 SVN for Emacs 如何
  • View 中对 ViewModel(即其 DataContext)的引用是否对 MVVM 模式有害?

    让我们说一个ViewModel发布一个Event and a View它正在使用该虚拟机作为其DataContext订阅该Event通过强制转换来获取对 VM 的引用DataContext到虚拟机实例 vm DataContext as M
  • pandas 堆叠数据框

    我有一个数据框 看起来像 sensorId 1 2 3 9b f3 55 19 00 4b 12 00 1 7 8 bf f3 55 19 00 4b 12 00 6 5 9 da f3 55 19 00 4b 12 00 1 1 2 我想
  • Neo4j 数据库大小增长

    我使用 neo4j 3 0 1 社区 并且我有几 GB 的数据 这些数据很快就会过时 比如每天 2 3 次 我必须先创建新数据 然后删除旧数据 因此在任何时间点都有一些数据可用 问题是 Neo4j 不使用已删除节点 关系中的空间 我使用 M
  • matplotlib 中的十六进制 X 轴

    是否可以以某种方式在 matplotlib 中以十六进制表示法打印 X 轴上的值 在我的图中 X 轴代表内存地址 您可以在轴上设置格式化程序 例如FormatStrFormatter http matplotlib org api tick
  • 指数超出范围。必须为非负数且小于集合的大小

    我在跟踪我的数据密钥时收到此错误 我不确定为什么我的数据密钥索引超出范围 这是我的代码 protected void GridView1 RowDataBound object sender GridViewRowEventArgs e v
  • Bootstrap 轮播中的 Highcharts 内容不会根据轮播自动调整大小

    我有一个高图表作为引导程序轮播中第二个项目的内容 div 内容 如果它位于第一个轮播幻灯片 项目上 它的大小调整得很好 但是 如果高图表位于第二张幻灯片上 则滑入时不会调整大小 如果不是第一个可见的轮播幻灯片 项目 如何自动调整轮播内容的大
  • window.openDatabase() 和 window.sqlitePlugin.openDatabase() 函数之间的区别?

    使用 Cordova 版本 3 x 和 Android 版本 2 x 至 4 x 我想知道 我的理解是否正确 所有 Android 设备默认都有一个用于创建 sqlite 数据库的 sqlite 程序 接口 上述两个数据库函数调用是否在设备
  • 如何使用 Android Google 地图应用程序的双击标记打开新活动?

    我正在尝试使用onMarkerClick 它允许用户在单击标记时查看新的活动 窗口 如果想要更改行为以便打开新活动 但仅当我双击标记时 我该怎么做 这是我的代码 public class MapsActivity extends Fragm
  • WebDriverWait 中的逻辑运算符预期条件

    我正在使用 Python Selenium 提交表单 然后让 Web 驱动程序通过使用类 id 的预期条件等待下一页加载 我的问题是 有两个页面可以显示 但它们不共享原始页面中不存在的唯一元素 我可以找到 一页有一个独特的类别是mobile
  • 查找字符出现 N 次的行

    我有一个 txt 文件 我试图将其作为平面文件导入 SQL2008 如下所示 123456 some text 543210 some more text 111223 other text etc 该文件有超过 300 000 行 文本很
  • GAE Python 开发服务器升级到 2.7 后间歇性崩溃

    我最近将我的 GAE Python 应用程序升级到了 Python 2 7 从那时起 我定期在开发服务器上收到以下错误 并且开发服务器提供空白页面 Traceback most recent call last File Applicati
  • 用模式替换 R 中的字符串并替换两个向量

    假设我有两个向量 如下所示 a lt c this is test b lt c that was boy 我还有一个字符串变量 如下所示 string lt this is a story about a test 我想替换字符串中的值