在可以出现零次或多次的字符之后截断 R 中字符串的末尾

2023-11-27

我有以下数据:

temp<-c("AIR BAGS:FRONTAL" ,"SERVICE BRAKES HYDRAULIC:ANTILOCK",
    "PARKING BRAKE:CONVENTIONAL",
    "SEATS:FRONT ASSEMBLY:POWER ADJUST",
    "POWER TRAIN:AUTOMATIC TRANSMISSION",
    "SUSPENSION",
    "ENGINE AND ENGINE COOLING:ENGINE",
    "SERVICE BRAKES HYDRAULIC:ANTILOCK",
    "SUSPENSION:FRONT",
    "ENGINE AND ENGINE COOLING:ENGINE",
    "VISIBILITY:WINDSHIELD WIPER/WASHER:LINKAGES")

我想创建一个新向量,在存在“:”的情况下仅保留第一个“:”之前的文本,在不存在“:”时保留整个单词。

我尝试过使用:

temp=data.frame(matrix(unlist(str_split(temp,pattern=":",n=2)), 
+                        ncol=2, byrow=TRUE))

但在没有“:”的情况下不起作用

我知道这个问题与以下问题非常相似:从R中的某个字符截断字符串,其中使用:

sub("^[^.]*", "", x)

但我对正则表达式不太熟悉,并且一直在努力扭转该示例以仅保留字符串的开头。


您可以使用简单的正则表达式来解决此问题:

sub("(.*?):.*", "\\1", x)
 [1] "AIR BAGS"                  "SERVICE BRAKES HYDRAULIC"  "PARKING BRAKE"             "SEATS"                    
 [5] "POWER TRAIN"               "SUSPENSION"                "ENGINE AND ENGINE COOLING" "SERVICE BRAKES HYDRAULIC" 
 [9] "SUSPENSION"                "ENGINE AND ENGINE COOLING" "VISIBILITY"     

正则表达式如何工作:

  • "(.*?):.*"查找重复的任意字符集.*但修改它?不要贪心。后面应该跟一个冒号,然后是任何字符(重复)
  • 用括号内找到的位替换整个字符串 -"\\1"

需要理解的是,默认情况下任何正则表达式匹配都是贪婪的。通过将其修改为非贪婪,第一个模式匹配不能包含冒号,因为括号后面的第一个字符是冒号。冒号后面的正则表达式恢复为默认值,即贪婪。

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

在可以出现零次或多次的字符之后截断 R 中字符串的末尾 的相关文章

  • 将字符串列拆分为多个虚拟变量

    作为 R 中 data table 包的相对缺乏经验的用户 我一直在尝试将一个文本列处理为大量指示符列 虚拟变量 每列中的 1 表示特定的子字符串是在字符串列中找到 例如我想处理这个 ID String 1 a b 2 b c 3 c 进入
  • R 中两个时间戳之间的左连接

    我的目标是执行左连接intervals哪里的bike id比赛和created at时间戳在records在 之间start and end in the intervals table gt class records 1 data ta
  • 绘制 Cox 回归的 Kaplan-Meier 图

    我使用 R 中的以下代码设置了一个 Cox 比例风险模型来预测死亡率 添加协变量 A B 和 C 只是为了避免混淆 即年龄 性别 种族 但我们真正对预测变量 X 感兴趣 X 是一个连续变量 cox model lt coxph Surv t
  • 如何在 R 中执行近似(模糊)名称匹配

    我有一个专门用于生物学期刊的大型数据集 该数据集是由不同的人长时间编写的 因此 数据不采用单一格式 例如 在 作者 栏中我可以找到John Smith Smith John Smith J等 但它们是同一个人 我连最简单的动作都做不了 例如
  • 将列表中的每个元素转换为数据框中的一列

    假设我有以下列表 d library combinat d permn c a b c 这看起来如下 1 1 a b c 2 1 a c b 3 1 c a b 4 1 c b a 5 1 b c a 6 1 b a c 是否可以将此列表的
  • 多个动态滤镜更新闪亮

    我希望能够让 UI 输入闪亮 并根据用户之前的选择进行自我更新 因此 在下面的示例中 预期的行为是用户选择cyl vsor carb那么这将 过滤数据集mtcars用于创建绘图 即用户根据过滤条件调整绘图并 更新其他过滤器中的剩余输入选择
  • `dplyr::_join` 函数的命名向量“by”参数[重复]

    这个问题在这里已经有答案了 我正在写一个函数dplyr join两个数据框by不同的列 第一个数据帧的列名称动态指定为函数参数 我相信我需要使用rlang准引用 元编程 但未能找到可行的解决方案 我很感激任何建议 library dplyr
  • `as.matrix` 和 `as.data.frame` S3 方法与 S4 方法

    我注意到定义as matrix or as data frame作为 S4 类的 S3 方法 使例如lm formula objS4 and prcomp object 开箱即用 如果它们被定义为 S4 方法 则这不起作用 为什么将方法定义
  • Javascript:删除字符串标点符号并拆分成单词?

    抱歉 如果之前有人问过这个问题 但我正在尝试从这样的字符串中获取单词数组 Exclamation Question Quotes Apostrophe Wasn t Couldn t Didn t 该数组应该看起来像这样 exclamati
  • R Shiny:如何将无功值从闪亮模块返回到主服务器功能?

    我有一个简单的玩具示例 它使用 add removeBtn 模块在 第一个 模块中添加和删除 UI 我需要跟踪单击 添加 删除 的次数 如果我不使用模块 这很容易 但我试图在嵌套模块的上下文中执行此操作 代码如下 但基本上 我似乎无法访问主
  • 在 R 的 for 循环中创建动态命名对象并分配动态值

    我正在尝试创建一套动态命名的新对象 例如 temp2015 使用 for 循环 并存储动态值 具体来说 其他对象的名称 例如 Y2015 和 for 循环中使用的值 例如 2015 在动态命名的新对象中 我不确定为什么下面的代码不起作用 Y
  • 闪亮的应用程序包:css 和所有 www/ 目录内容

    我正在尝试将 Shiny 应用程序转换为 R 包 但我在处理有关 www 目录以及 松散 文件的所有问题时遇到了问题 我闪亮的应用程序运行得很好 但是当我尝试 打包它 时 它不起作用 我闪亮的应用程序目录 my shiny app R ut
  • 如何按定义的顺序将图像合并到一个文件中

    我有大约 100 张图像 png 我不想手动执行此操作 而是希望将它们按照定义的顺序 基于文件名 并排放置在一个 pdf 中 每行 12 个图像 有人有什么建议吗 我按照下面托马斯告诉我的方法尝试了 它把它们贴在旁边有一个黑边 我怎样才能去
  • R Shinydashboard 自定义 CSS 到 valueBox

    我一直在尝试将 valueBox 的颜色更改为自定义颜色 超出 validColors 中可用的颜色 但一直无法这样做 我知道有一种方法可以使用标签来包含自定义 CSS 但是我无法将它们放在正确的位置 ui lt dashboardPage
  • R在Windows平台Rstudio上打印data.frames中的UTF-8代码

    当数据框中存在UTF 8字符时 将无法正常显示 例如 以下内容是正确的 gt U6731 1 朱 但是当我将其放入数据框中并打印出来时 它是 gt data frame x U6731 x 1
  • 为什么这个 R ggplot2 代码会显示一个空白的显示设备?

    虽然 SO 通常不用于帮助解决错误 但这个显示了特别简单且特别烦人的行为 如果你是一个ggplot2用户 您可以在 10 秒或更短的时间内重现它 正如这个 GitHub 问题 ggplot gtable 创建空白显示 https githu
  • 为什么 re.findall 在查找字符串中的三元组项时不具体。 Python

    所以我有四行代码 seq ATGGAAGTTGGATGAAAGTGGAGGTAAAGAGAAGACGTTTGA OR 0 re findall r ATG 9 TAA TAG TGA seq 首先让我解释一下我正在尝试做什么 如果这令人困惑
  • 如何根据 ggplot2 中的汇总数据创建堆积条形图

    我正在尝试使用 ggplot 2 创建堆积条形图 我的宽格式数据如下所示 每个单元格中的数字是响应的频率 activity yes no dontknow Social events 27 3 3 Academic skills works
  • 当将遗传算法与 lme4 一起使用时,glmulti 无限期运行

    我在 R 中使用 glmulti 进行模型平均 我的模型中有大约 10 个变量 使得详尽的筛选不切实际 因此我需要使用遗传算法 GA 调用 method g 我需要包含随机效应 因此我使用 glmulti 作为 lme4 的包装器 此处提供
  • ggplot:如何限制条形图中的输出,以便仅显示最频繁出现的情况?

    我几个小时以来一直在寻找这个简单的东西 但没有结果 我有一个数据框 其中一列为变量 国家 地区 我想要两件事以下 绘制最常见的国家 地区 最常见的位于顶部 找到部分解决方案EDIT找到完整的解决方案 gt gt 重点问题是根据频率限制条形图

随机推荐

  • 如何在 Ionic 2 中的选择组件内使用图像

    我正在尝试将图像放入SelectIonic 2 中的组件 我已将图像源文件放入www img我的 Ionic 2 项目中的文件夹 然而 使用一个简单的img tag 使用此代码不显示任何图像
  • goto 可以打破嵌套循环吗?

    JavaScript 支持类似于 goto 的语法来打破嵌套循环 总的来说 这不是一个好主意 但它被认为是可以接受的做法 C 不直接支持break labelName语法 但它确实支持臭名昭著的goto 我相信 C 中可以实现等效的功能 i
  • 如何将 tqdm 与多线程结合使用?

    我试图使用 tqdm 报告从三个链接下载每个文件的进度 我想使用多线程从每个链接同时下载 同时更新进度条 但是当我执行脚本时 有多行进度条 似乎线程正在同时更新 tqdm 进度条 我问我应该如何运行多线程来下载文件 同时保持每次下载的进度条
  • Java - 全名正则表达式

    如何验证全名的正则表达式 我只想要字母 没有数字 和正则表达式的空格 这就是我到目前为止所做的 你能帮我修复正则表达式吗 非常感谢 public static boolean isFullname String str boolean is
  • 让 ggvis::export_png() 工作

    Goal 导出一个ggvis图为 PNG 文件 用于包含在 Rmd 文档中 Problem 我对 Node js 基本上一无所知 除了它很棒而且我应该了解更多 我了解到 library ggvis mtcars gt ggvis mpg w
  • 如何实现带有子项的可扩展android导航抽屉?

    如何实现这样的android导航抽屉 TopLevelView1 TopLevelView4 可以选择并且没有子项顶级 evelView 5 可以折叠 我的问题是 如果我的小组结构是这样的 All Stared类别 mp3 txt doc
  • 如何清理ThreadLocals

    有人有一个如何做到这一点的例子吗 它们是由垃圾收集器处理的吗 我正在使用 Tomcat 6 javadoc 是这样说的 只要线程处于活动状态并且 ThreadLocal 实例可访问 每个线程就持有对其线程局部变量副本的隐式引用 线程消失后
  • 在 C# 中的 Excel[2007] 中添加超链接 - 在 Excel 本身中

    谁能告诉我如何在 Excel 2007 或更高版本 中添加超链接 使用 NET c 中的 Office Interop 将一张工作表中的单元格复制到另一张工作表中的单元格 例如 从 Sheet1 单元格 A1 到 Sheet2 单元格 B1
  • 如何将 apklib 转换为 aar

    由于 Gradle 不支持apklib依赖项如何迁移apklib依赖于aar依赖关系 是否可以手动或自动转换apklib依赖于aar 如果是 如何 如果否 为什么不呢 在这个问题中 我假设我没有原始项目apklib 而是文件本身 apkli
  • BasicHttpBinding vs WsHttpBinding vs WebHttpBinding

    在 WCF 中 有几种不同类型的基于 HTTP 的绑定 基本Http绑定 WsHttp绑定 WebHttp绑定 这3个有什么区别 特别是在功能 性能和兼容性方面有哪些差异 您在这里比较苹果和橙子 webHttp绑定是 REST 风格的绑定
  • 存储帐户阻止容器创建的网络规则

    按照说明进行操作创建 blob 的 Azure CLI 快速入门 看起来默认存储帐户中的某些内容阻止了创建新容器的能力 然而 defaultAction is Allow 以下 Azure CLI az storage container
  • 更改 FileSystemObject 的当前目录

    使用 FileSystemObject 时 您可以使用路径 引用运行脚本的目录 是否可以更改 FileSystemObject 认为的当前目录 以便您可以使用 其他目录的路径语法 例子 Set fso CreateObject Script
  • 作为属性与字段访问和更改结构

    好吧 我将开始我的问题 说我了解可变结构背后的邪恶 但我正在使用 SFML net 并使用大量 Vector2f 和此类结构 我不明白的是为什么我可以拥有并更改类中的字段的值 但不能对同一个类中的属性执行相同的操作 看一下这段代码 usin
  • 用于管理 github 中共享存储库上的拉取请求的工作流程

    我正在尝试管理我不拥有但具有管理员权限的存储库上的拉取请求 当我尝试从另一个分支中提取更改时 它失败并出现不太清楚的错误 这是我的工作流程 分叉主仓库 在该分支中进行更改 致力于该分叉3 5 转到步骤2 向主存储库提交拉取请求 作为主存储库
  • Drools 中的 Mvel 方言是什么?

    我是流口水的新手 我正在创建规则 但出现编译时错误 字段不可见 我尝试检查 Jboss 示例 它们在哪里使用方言 mvel 它编译了 我听不懂方言 那么什么是dialect mvel mvel 或者MVFLEX 表达式语言 has a 丰富
  • 堆叠条形图 d3.js 的每个条形上的文本

    我想在 d3 js 库提供的堆积条形图中的堆积条形的每个条形中都有一些文本 感谢您的帮助 我在这里定制了示例link但我没有改变 javascript 代码中的任何其他内容 and here is the result 这是重要的代码 st
  • 具有 3 个条件的 IF 函数

    我正在寻找一个具有 3 个条件的公式 目前它仅适用于 2 个条件 这就是我正在寻找的 E9有一个号码 如果号码是21 然后我希望它显示文本1 如果数字介于5 and 21 然后我希望它显示文本2 如果数字低于5 然后我希望它显示文本3 这就
  • 如何取消Spring定时器的执行

    我需要取消 Spring 计时器执行或至少根据某些条件更改执行频率 两者都在使用org springframework scheduling quartz SimpleTriggerBean and org springframework
  • 从 oracle 函数返回布尔值

    尝试从函数返回值 create or replace function compairenumber num1 in number num2 in number return boolean is begin if num1 lt num2
  • 在可以出现零次或多次的字符之后截断 R 中字符串的末尾

    我有以下数据 temp lt c AIR BAGS FRONTAL SERVICE BRAKES HYDRAULIC ANTILOCK PARKING BRAKE CONVENTIONAL SEATS FRONT ASSEMBLY POWE