如何在R中两个单词之间的文本上进行gsub?

2023-12-07

EDIT:

我想放置一个\n在我的文本中特定的未知单词之前。我知道这个未知词第一次出现在我的文本中将会在“树”和“湖”之间

前任。文本:

text
[1]  "TreeRULakeSunWater" 
[2]  "A B C D"

EDIT:

“树”和“湖”永远不会改变,但它们之间的词总是在变化,所以我不会在我的搜索中寻找“RU”regex

我目前正在做的事情:

if (grepl(".*Tree\\s*|Lake.*",  text)) { text <- gsub(".*Tree\\s*|Lake.*", "\n\\1", text)}

我上面所做的问题是gsub将子所有text然后离开\nRU.

text
[1] "\nRU"

我也尝试过:

if (grepl(".*Tree *(.*?) *Lake.*",  text)) { text <- gsub(".*Tree *(.*?) *Lake.*", "\n\\1", text)}

我想要什么text看起来像之后gsub:

text
[1] "Tree \nRU LakeSunWater"
[2] "A B C D"

EDIT:

从 Wiktor Stribizew 的评论来看,我能够成功地做到这一点gsub

gsub("Tree(\\w+)Lake", "Tree \n\\1 Lake", text)

但这只会在“Tree”和“Lake”之间出现“RU”时执行 gsub,这是未知单词第一次出现。未知单词以及本例中的“RU”将在文本中多次出现,我想放置\n当“RU”是一个完整单词时,出现在每次出现“RU”的前面。

新前任。的文本。

text
[1] "TreeRULakeSunWater"
[2] "A B C RU D"

新前任。我想要的:

text
[1] "Tree \nRU LakeSunWater"
[2] "A B C \nRU D"

任何帮助将不胜感激。如果需要更多信息,请告诉我。


你需要find首先是“树”和“湖”之间的未知词。您可以使用

unknown_word <- gsub(".*Tree(\\w+)Lake.*", "\\1", text)

该模式匹配直到最后一个字符的任何字符Tree在一个字符串中,然后捕获未知单词(\w+= 一个或多个单词字符)最多Lake然后匹配字符串的其余部分。它替换向量中的所有字符串。您可以通过以下方式访问第一个[[1]] index.

然后,当你知道这个词时,将其替换为

gsub(paste0("[[:space:]]*(", unknown_word[[1]], ")[[:space:]]*"), " \n\\1 ", text)

See IDEONE演示.

在这里,你有[[:space:]]*(+ 未知词[1] + )[[:space:]]*图案。它匹配未知单词两端的零个或多个空格以及未知单词本身(捕获到组 1)。在替换中,空格被缩小为 1(如果没有则添加),然后\\1恢复未知单词。您可以更换[[:space:]] with \\s.

UPDATE

如果你只需要在前面添加一个换行符RU这是整个单词,请使用\b字边界:

> gsub(paste0("[[:space:]]*\\b(", unknown_word[[1]], ")\\b[[:space:]]*"), " \n\\1 ", text)
[1] "TreeRULakeSunWater" "A B C \nRU D"   
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在R中两个单词之间的文本上进行gsub? 的相关文章

  • 将整个包传递给雪簇

    我正在尝试并行化 使用snow parLapply 一些依赖于包 即除snow 调用函数中引用的对象parLapply必须使用显式传递给集群clusterExport 有没有办法将整个包传递到集群 而不必显式命名每个函数 包括用户函数调用的
  • vim 中的正则表达式查找和替换:向数字添加 .0

    我有一个如下所示的文件 1 1 0 1 6 1 0 2 8 1 0 3 10 1 0 4 12 1 0 6 如何为所有数字添加 0 后面的数字除外 我认为用正则表达式来做到这一点应该不会太难 但是我的正则表达式知识太生疏了 使用 VIM s
  • R 中的数据框操作 - 将单元格向左移动并删除 NA

    我有一个数据框 其列由随机分布的值和 NA 组成 如下所示 a lt c S E NA S NA b lt c A NA M G K c lt c I NA NA NA L meh lt dataframe a b c 1 2 3 4 5
  • Oracle REGEXP_INSTR() 和“a-z”字符范围与预期不匹配

    我想用REGEXP INSTR 在 oracle 数据库中检查小写 大写字符 我知道 upper and lower POSIX 字符类 但我选择了a z这给了我非常奇怪的结果 我不明白 有人可以解释一下吗 SELECT REGEXP IN
  • 如何在R中分离两个图?

    每当我运行这段代码时 第一个图就会简单地覆盖前一个图 R中有没有办法分开得到两个图 plot pc title main abc xlab xx ylab yy plot pcs title main sdf xlab sdf ylab x
  • 斯皮尔曼相关性和联系

    我正在一小组配对排名上计算斯皮尔曼的 rho 斯皮尔曼因处理领带不当而闻名 例如 取2组8个排名 即使两组中有6个是平局 相关性仍然很高 gt cor test c 1 2 3 4 5 6 7 8 c 0 0 0 0 0 0 7 8 met
  • 如何在R中实现countifs函数(excel)

    我有一个包含 100000 行数据的数据集 我尝试做一些countifExcel 中的操作 但速度慢得惊人 所以我想知道R中是否可以完成这种操作 基本上 我想根据多个条件进行计数 例如 我可以指望职业和性别 row sex occupati
  • 日期 (yyyy/MM/dd) 或年份 (yyyy) 的正则表达式验证器

    我想要正则验证表达式来验证仅输入年份 yyyy 或日期 yyyy MM dd 它不得接受 21 23323 它应该接受任何四位整数值 例如 2012 并且还应该仅接受年份 yyyy MM dd 格式 您不需要为此使用正则表达式 我会用Dat
  • 如何在 foreach( ... , .packages="pkg") %dopar% 中指定 R 包的位置

    我的 包 安装在其他地方 我如何告诉 foreach 在哪里可以找到该包 foreach i 1 2 packages pkg dopar 这给我错误消息 worker initialization failed there is no p
  • 使用操作按钮在闪亮的 R 中添加包含现有数据框的新行

    我正在构建一个闪亮的表单 它将从 textInput 字段获取数据 并将这些输入与文本文件 将通过文件输入上传 组合起来 并在主面板中显示输出 有一个操作按钮用于第一次更新数据 从文本输入中获取数据并与处理后的文本文件合并 我添加了另一个操
  • 将文件名附加到 R 中的数据框

    我想将文件名附加到我的表中 但它似乎并没有真正起作用 我正在做的是迭代文件名列表 打开它们 将所有数据附加到一个数据帧 对于每个附加文件 我想添加其文件名 我希望将其附加到每一行 以便稍后当我查看数据时 我会知道给定行源自哪个文件 但似乎并
  • mysql 详细查询字符串,如通配符

    不知道如何标题我的问题 哈哈 下面是我需要的 我的数据库中的值如下所示 test example 1 test example 2 test example TD 1 这些值的长度可以不同 test example 只是一个示例 某些值将具
  • tidyverse - 将命名向量转换为 data.frame/tibble 的首选方法

    使用tidyverse我经常面临将命名向量转换为向量的挑战data frame tibble列是向量的名称 执行此操作的首选 tidyverse 方式是什么 编辑 这与 this https github com hadley dplyr
  • ggplot geom_bar - 条形太宽

    对于这个非信息性的标题 我感到很抱歉 gt y read csv textConnection scan sep n what raw org art type length 191 gk Finish short 4 147 ik Att
  • 用于安装 R 软件包的备用编译器:clang:错误:不支持的选项“-fopenmp”

    我正在尝试在 OS X 10 11 6 上使用 R 版本 3 4 0 安装 rJava 包 install packages rJava type source 我收到以下错误 clang o libjri jnilib Rengine o
  • 函数速度测试的奇怪结果

    我编写了一个使用递归来查找最大公因数 分母 的函数 gt gcd function a b if length a length b gt 1 warning Only scalars allowed using first element
  • 替换两个引号之间的字符串

    我想转动一根绳子str hello my name is michael what s your s into hello my name is span class name michael span 我怎样才能在 JavaScript
  • 使用括号表示 y 轴上的负值 ggplot2

    我想在括号中显示 y 轴负值 而不是用负号 例如 我想显示 2 000 而不是 2 000 我在 R 中使用 ggplot2 我尝试在scale y continuous内部使用 negative parens TRUE 如下所示 但没有成
  • 当找到匹配时使用 sed 替换行首

    我有一个 Java 文件 我想注释包含匹配的任何代码行 myvar 我认为 sed 应该在这里帮助我 sed s myVar not sure what to put here g MyFile java 我不知道要输入什么 not sur
  • 根据列中的部分字符串匹配选择数据框行

    我想根据列中字符串的部分匹配从数据框中选择行 例如列 x 包含字符串 hsa 使用sqldf if它有一个like语法 我会做类似的事情 select from lt gt where x like hsa 很遗憾 sqldf不支持该语法

随机推荐

  • R 行乘法 - 重新设计? [复制]

    这个问题在这里已经有答案了 比如说 如果我有一个 lots x 5 矩阵和一个 1 x 5 矩阵 是否有比这更好的方法将它们逐行相乘 gt q 1 2 3 4 5 1 1 2 3 4 5 gt z 1 2 3 4 5 1 1 6 11 16
  • 如何给 iframe 100% 高度[重复]

    这个问题在这里已经有答案了 我想 但它仍然没有调整它的大小 当我尝试以像素为单位的高度时 它起作用了 编辑 100 似乎可以在 IE 上运行 但不能在 Firefox 上运行 你可以用 CSS 来做到这一点 请注意 默认情况下 这会将其放置
  • Android中如何知道定位模式是WIFI还是2G/3G基站?

    我们知道Android中有两种定位模式 GPS和网络 如果我们使用网络 那么Android可以使用WIFI或2G 3G基站进行定位 如果没有GPS 我们可以简单地使用LocationManager NETWORK PROVIDER来获取位置
  • 信号量和条件的区别(ReentrantLock)

    有谁知道这些方法之间的区别acquire and release java util concurrent Semaphore and await and signal new ReentrantLock newCondition 您能为每
  • Python 列表推导式 - 转置

    我刚刚开始通过阅读列表理解矩阵转置教程在这里 我理解这个例子 但我试图找出一种转置矩阵的方法 而不需要对范围进行硬编码 matrix 1 2 3 4 5 6 7 8 9 10 11 12 lcomp row i for row in mat
  • 通过导航 doPostBack 使用 R 抓取网站

    我想定期从下面的站点提取表格 单击构建块名称 BLOK 16 A BLOK 16 B BLOK 16 C 时 价目表会发生变化 URL不改变 页面通过触发改变 javascript doPostBack ctl00 ContentPlace
  • Spark SQL saveAsTable 返回空结果

    我使用以下代码在 Spark SQL 中创建 插入数据到 Hive 表中 val sc SparkSession builder appName App master local 2 config spark sql warehouse d
  • quote_ident() 不会向列名“first”添加引号

    我需要获得正确用双引号引起来的列名 quote ident 好像没有做到吧 select 1 first fails select quote ident first produces first not first 我可以使用什么命令来成
  • 按字符串的组成部分对字符串列表进行排序

    一个长列表包含一些要排序的元素 实际上每个元素有4个内容 名称 进 出 区域和日期 时间 以 连接 可以更改 我想将列表重新组织为排序顺序 a list Chris Check in Zoom A 11 13 2013 05 20 Chri
  • 禁用热链接或直接下载我的视频,并且仅在视频从我的网站页面显示时流式传输

    我想禁用盗链FLV and MP4托管在我的服务器上的视频 除非视频是从其 URL 所在的页面显示的以 开始 http www mywebsite com index php main page videos page 我必须添加到 hta
  • 强制洗牌 NSMutableArray

    我有一个名为 putNumberUsed 的 NSMutableArray 它包含以下对象 blah1 blah2 blah3 blah4 我想随机洗牌这些对象 例如 如果我选择 putNumberUsed objectAtIndex 0
  • 音频播放无法开始

    NSError err Initialize audio player audioPlayer AVAudioPlayer alloc initWithContentsOfURL url error err audioPlayer dele
  • 在Go中,删除指针映射的条目会导致内存泄漏吗?

    第一次来到这里 首先NOTE in 切片技巧表明在剪切或删除指针切片中的元素时存在潜在的内存泄漏问题 地图也是如此吗 例如 https play golang org p 67cN0JggWY 在从地图中删除之前我们应该清零该条目吗 就像这
  • android.app.Application 无法转换为 android.app.Activity

    我正在尝试改变一个LinearLayout来自另一个类 但是当我运行此代码时 public class IRC extends PircBot ArrayList
  • 如何响应演员调用的结果?

    我们正在考虑使用 Akka HTTP Java API 使用路由 DSL 不清楚如何使用路由功能来响应 HttpRequest 使用无类型 Akka Actor 例如 在匹配 Route 路径后 我们如何将请求传递给 处理程序 ActorR
  • 实体框架-使其只读? [复制]

    这个问题在这里已经有答案了 可能的重复 如何使实体框架数据上下文只读 是否有配置设置或简单的方法使实体 只读 我有一个数据访问层 该层与作为 CRM 解决方案后端的数据库相对应 我们不想 无意或故意 写入 CRM UI 之外的数据库 但我们
  • 如何将 int[] 类型转换为 int?[]

    我正在使用 linq 查询来输出 int 数组 但我需要将其传递给仅接受 int 的方法 因此 在搜索了将 int 转换为 int 的方法之后 我发现了一些似乎可行的方法here 以下代码是一个简化的示例 显示了哪些内容有效 哪些无效 us
  • 如何以编程方式在 Windows 8 开始屏幕上放置磁贴?

    我正在构建一个 Windows 商店应用程序 我希望该应用程序的磁贴位于我的开始屏幕的特定位置 是否有任何 API 可以对我的图块在开始屏幕上的位置进行编码 提前致谢 不 您无法控制图块的移动位置 这由用户决定 Windows 8 环境设计
  • 如何将heroku 上回形针的上传目录更改为/tmp?

    我需要上传文件 然后使用回形针解析它们 目前它上传到 system文件夹中 这在heroku中是不允许的 我不需要持久上传 我解析它然后存储它们 所以我希望能够保存到 tmp 中然后解析 然后让它稍后被吹走 关于如何做到这一点的想法 如果我
  • 如何在R中两个单词之间的文本上进行gsub?

    EDIT 我想放置一个 n在我的文本中特定的未知单词之前 我知道这个未知词第一次出现在我的文本中将会在 树 和 湖 之间 前任 文本 text 1 TreeRULakeSunWater 2 A B C D EDIT 树 和 湖 永远不会改变