R - 从字符串右侧第 n 次出现字符后提取信息

2024-04-05

我见过很多次提取w/gsub但它们主要处理从左到右或在一次出现后提取。我想从右到左匹配,数四次出现-,匹配第 3 次和第 4 次出现之间的所有内容。

例如:

string                       outcome
here-are-some-words-to-try   some
a-b-c-d-e-f-g-h-i            f

以下是我尝试使用的一些参考资料:

  • 在 R 中查找特殊字符的第三次出现并删除之前的所有内容 https://stackoverflow.com/questions/35088337/find-third-occurrence-of-a-special-character-and-drop-everything-before-that-in

  • 正则表达式 - 返回第二次出现之前的所有内容 https://stackoverflow.com/questions/7449564/regex-return-all-before-the-second-occurrence


你可以使用

([^-]+)(?:-[^-]+){3}$

See regex101.com 上的演示 https://regex101.com/r/XDF50z/1/.


In R this could be
library(dplyr)
library(stringr)
df <- data.frame(string = c('here-are-some-words-to-try', 'a-b-c-d-e-f-g-h-i', ' no dash in here'), stringsAsFactors = FALSE)

df <- df %>%
  mutate(outcome = str_match(string, '([^-]+)(?:-[^-]+){3}$')[,2])
df

并产生

                      string outcome
1 here-are-some-words-to-try    some
2          a-b-c-d-e-f-g-h-i       f
3            no dash in here    <NA>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R - 从字符串右侧第 n 次出现字符后提取信息 的相关文章

  • 使用括号表示 y 轴上的负值 ggplot2

    我想在括号中显示 y 轴负值 而不是用负号 例如 我想显示 2 000 而不是 2 000 我在 R 中使用 ggplot2 我尝试在scale y continuous内部使用 negative parens TRUE 如下所示 但没有成
  • ggplot2 的 fortify 函数出错

    我在 ggplot2 中使用 fortify 方法时收到此错误 Error in function classes fdef mtable unable to find an inherited method for function pr
  • 根据列中的部分字符串匹配选择数据框行

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

    这是我最初发布的问题的延续http r 789695 n4 nabble com subset Between data table list and single data table object tp4673202 html http
  • 使用 ggplot 2 使用线条或线段将堆栈条形图与多个组连接起来

    我正在对一些患有某种疾病的患者进行一项研究 并在 3 个不同的时间点使用顺序量表评估功能状态 我想在这些时间点的堆叠条形图中连接多个组 我查看了这些主题 但尚未使用这些建议使其发挥作用 如何将线条放置在堆积条形图的边缘 https stac
  • 根据一个或多个下拉选项创建具有不同类型线型的折线图

    在下面闪亮的应用程序中 我尝试根据侧边栏中的下拉选择创建点线图 我已成功在选择一个指标时创建折线图 但无法选择 2 个指标 为了x and y我想要一个solid线 对于x1 and y1我想要一个dashed线和对于x2 and y2一条
  • 使用从变量中选择的列名称逐行索引数据框

    考虑以下数据框 TEST lt structure list Value c NA NA NA NA NA NA NA NA NA NA NA NA Select structure c 2L 1L 3L 2L 2L 1L 1L 2L 1L
  • 事后如何使用保存的.rds h2o模型进行预测?

    我使用 mlr 和 h2o 包创建了一个 R 模型 如下所示 library h2o rfh20 lrn makeLearner classif h2o randomForest predict type prob 完成模型调整 模型启动
  • 用 C/C++ 编写的通用代码补全框架

    有没有用 C C C 11 编写的框架用于编写代码补全工具 或者也许有一些库允许 Java 或 C 的代码完成 也是用 C 编写的 我正在用 C 编写我的自定义 IDE 用于 Java 而不仅仅是 Java 开发 我想以最好的方式为其添加代
  • h264 参考帧

    我正在寻找一种在 h264 流中查找参考帧的算法 我在不同的解决方案中看到的最常见的方法是查找访问单元分隔符和 IDR 类型的 NAL 不幸的是 我检查的大多数流没有 IDR 类型的 NAL 我将不胜感激的帮助 问候 雅采克 H264 帧由
  • 如何在Python中按字母顺序对字符串中的字母进行排序

    有没有一种简单的方法可以在Python中按字母顺序对字符串中的字母进行排序 So for a ZENOVW 我想返回 ENOVWZ 你可以做 gt gt gt a ZENOVW gt gt gt join sorted a ENOVWZ
  • python:正则表达式匹配文件扩展名

    您好 我正在尝试获取 url 中调用的文件的扩展名 例如 wp includes js jquery jquery js ver 1 3 2 HTTP 1 1 并获取传递到文件的查询参数 延期的最佳方式是什么 urlparse urlpar
  • 在 R 中使用 apply() 时出现未使用参数错误

    当我尝试对日期列使用 apply 条件以返回一组系数时 收到错误消息 我有一个数据集 为简单起见 此处进行了修改 但可重现 ADataset lt data table Epoch c 2007 11 15 2007 11 16 2007
  • 版本差异? Java 中的正则表达式转义

    看来正则表达式转义在不同版本的 Java 中的工作方式不同 在 Java openjdk 16 0 1 中编译工作正常 在 Java openjdk 11 0 11 中抛出此编译错误 test java 15 error illegal e
  • 如何使用 R 更改 png 文件的大小

    我正在绘制 png 文件并获取一张小图片 你知道一些可以改变 png 图大小的简单代码吗 我的地块太高太 薄 另外有没有办法改变情节的分辨率 谢谢 伊格尔 png png filename Rplot 03d png width 480 h
  • 最新的 Windows 10 更新后 R 将无法运行

    我已经更新了我的 Windows 但 R 无法运行 因此 R studio 也无法运行 当我运行 R GUI 时 它只是冻结并且没有响应 我已允许防火墙豁免铬 我正在使用 Windows Insider 计划并且刚刚更新到 Windows
  • 用于验证网络路径的正则表达式 PHP、jQuery、JavaScript、Ruby

    尝试找出用于验证网络路径的正则表达式 即 comp xyz or comp or comp x y z storage或者所有部分都更长的东西 但希望能够传达其要点 我目前拥有的是一个简单的输入字段 用户可以通过它传递信息 事情是我不希望他
  • 使用 r 以周为单位对数据进行分组

    I have a CVS file which has data for different countries at different weeks of this year I want to create a summary data
  • ggplot2 geom_function 可以跨 arg 值进行分面吗?

    我想通过分面 geom function 创建 ggplot2 图 以便函数的参数在网格中变化 例如像这样的东西 my function lt function x par if par 1 return sin x else return
  • R:交换两个变量而不使用第三个变量

    我有两个变量 即 a lt 1 b lt 2 我想交换他们的价值观 是否有任何内置的 R 函数能够执行该操作 或者是否有其他优雅的方式 而不使用第三个 临时 变量 Note 如果可能的话适用于字符串或其他数据类型 有一个通用的解决方案或 技

随机推荐

  • 像#include 这样的预处理器指令只能放在程序代码的顶部吗?

    我已经用过 pragma函数内的指令没有错误或警告 特别是 pragma pack 但是下面的代码显示了警告incompatible implicit declaration of built in function printf int
  • 四人帮 - 设计模式 - 这些模式示例是否以过时的方式编码?

    所以为了澄清我的问题 臭名昭著的 GoF 书中的每个模式 设计模式 可重用的面向对象软件的元素 有 C 代码示例 这些是最新的吗 或者现在的 C 代码看起来有很大不同吗 我这么问是因为当我发布带有最后一个问题的代码时 许多 C 开发人员告诉
  • 九补丁与矢量图形

    我正在学习 Android UI 但不清楚为什么人们在可以使用矢量图形的情况下使用九个补丁 因为它们是可扩展的 不会出现任何像素退化 我是 Android 的初学者 所以我希望我在这里不会遗漏任何东西 但似乎构建矢量图形并使用它们会更容易
  • 为什么部分应用函数会延迟 Scala 中的类实例化?

    想象一下这段代码 class Foo println in Foo def foo a Int a 1 现在 如果我们调用 new Foo foo 将按预期创建 Foo 类的实例 in Foo res0 Int gt Int
  • Reactjs 地图函数不渲染组件

    这是错误 https i stack imgur com zmiR6 png我正在尝试渲染 createCardHotels 函数 但是 每当我运行它时 什么也没有显示 任何帮助将不胜感激 我使用地图函数来循环数据 每当我运行它时 我都可以
  • Android Studio找不到颜色样式资源

    我正在尝试使用自定义主题 AppCompat NoActionBar但是IDE throws无法找到指定资源的错误 请协助 任何帮助将不胜感激 styles xml如下
  • 网格对于 kernelUD /getverticeshr/adehabitatHR 家庭范围估计来说太小

    adehabitat HR 的文档建议使用以下代码来在创建 UD 对象后计算家庭范围的 95 内核 Calculation of the 95 percent home range ver lt getverticeshr ud 95 对于
  • 发送同步请求角度6 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我想在 Angular 6 中发送这个嵌套 for 循环的同步请求 所有 for 循环都必须等待彼此响应 请举一些例子https stack
  • 如何访问iframe元素?

    当您像这样循环访问页面中的所有 iframe 时 HTML ul li li li li li li ul JS for var i 0 i lt window frames length i if window frames i getN
  • Verilog 中的大括号是什么意思?

    我很难理解 Verilog 中的以下语法 input 15 0 a 16 bit input output 31 0 result 32 bit output assign result 16 a 15 a 15 0 我知道assign语句
  • 如何获取两个日期之间的天数?

    我需要计算两个日期之间的天数 我已经检查了此链接给出的代码如何使用 JavaScript 计算两个日期之间的天数 https stackoverflow com questions 2627473 how to calculate the
  • 删除名为“NA”的列

    我正在处理一些 RNA seq 计数数据 其中大约有 60 000 列包含基因名称 24 行包含样本名称 当我进行一些基因名称转换时 我留下了一堆名为NA 我知道 R 可以处理NA与典型的列名称不同 我的问题是如何删除这些列 这是我的数据的
  • Chrome 无法获取选定的 html 字符串换行标签 (contenteditable)

    我在用着this https stackoverflow com a 6668159 1491124Tim Down 的解决方案在 contenteditable div 中获取选定的 html 并且工作正常 谢谢 Tim 但是使用 Chr
  • 显示 2 行消息弹出 vba 6

    有没有办法在 vba 6 的弹出窗口上显示 2 或 3 或 4 或 n 行消息 目前我的弹出窗口 调用 MsgBox 函数 显示如下消息 You did something wrong Please enter valid input 我希
  • ES6 箭头函数和 Promise Chaining 精简语法解释

    在下面的代码块中 有人可以提供压缩警报语句语法的链接或解释吗 我理解前面的扩展等效代码已被注释掉并包含消息参数 但是 我找不到省略消息参数的语法参考 let timeoutPromise new Promise resolve reject
  • Pycharm不显示结果

    Pycharm不显示结果 进程已完成 退出代码为 1 但是当我调试它的工作并显示警告时 Debugger speedups using cython not found Run C Python27 python exe C Program
  • C# COM 自动化的双接口和仅调度接口之间的区别

    我正在针对 C COM 服务器实现一个 C COM 客户端 当我将 COM 接口标记为 Dual 时 COM 客户端可以正常工作 但当我删除 Dual 属性时 它会抛出 InvalidCastException 因此 对我来说最简单的解决方
  • PHP 8 严格类型强制应用于本机函数?

    我的代码适用于 PHP 7 round microtime 3 但在 PHP 8 中 致命错误 未捕获类型错误 round 参数 1 num 必须是 int float 类型 4 中给出的字符串堆栈跟踪 0 round 0 21066100
  • 嵌套 ng-repeat 性能

    我听说嵌套 ng repeats 会严重影响 Angular 的性能 如果它会导致大量带有 Angular 表达式的元素 我实际上已经遇到过这种情况 我正在尝试编写一些代码 我尝试使用bindonce https github com Pa
  • R - 从字符串右侧第 n 次出现字符后提取信息

    我见过很多次提取w gsub但它们主要处理从左到右或在一次出现后提取 我想从右到左匹配 数四次出现 匹配第 3 次和第 4 次出现之间的所有内容 例如 string outcome here are some words to try so