r - 将字符串部分提取到 R 中的列

标签 r string tidyverse stringr

考虑以下数据框:

     status
1    file-status-done-bad
2    file-status-maybe-good
3    file-status-underreview-good 
4    file-status-complete-final-bad  

我们要提取状态的最后一部分,其中部分由-分隔。这样的:

     status                          status_extract
1    file-status-done-bad            done
2    file-status-maybe-good          maybe
3    file-status-ok-underreview-good underreview
4    file-status-complete-final-bad  final

在 SQL 中这很简单,select split_part(status, '-', -2)

但是,我见过的 R 解决方案要么对向量进行操作,要么在提取特定元素时很困惑(它们返回所有元素)。这是如何在变异链中完成的?以下是失败的尝试。

df %>%
mutate(status_extract = str_split_fixed(status, pattern = '-')[[-2]])

最佳答案

找到了一个非常简单的答案。

library(tidyverse)

df %>%
  mutate(status_extract = word(status, -1, sep = "-"))

关于r - 将字符串部分提取到 R 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62980106/

相关文章:

Python : Splitting a string by numbers, 字母和 -_

r - 尝试为包创建函数,该函数在存在分类变量时自动绘制给定模型的变量响应

r - 提高循环内 bind_rows 的速度(3000 个数据帧)

r - 使用 dplyr 选择筛选行之前的行

使用 for 循环替换非结构化文本文件中的单词

r - 在 R 中构建一个循环,将所有行写入单独的文件中,每个文件一行

sql-server - 如何在t-sql中提取字符串的一部分

r - 将 POSIXct 向量转换为日期格式会在 R 中添加一天(9/30 变为 10/1)

r - 使用 `data.table` 包在 R 中使用键的子集数据

java - 有目的地避免 ArrayIndexOutOfBoundsException