这里我有一个简单的字符串;

input_string <- "P24928 [1909-1922]; [1923-1936]; P08775 [1909-1922]; [1923-1936]"

我希望它在第二组括号之前粘贴第一个部分,即P#####,这样字符串将是:

"P24928 [1909-1922]; P24928 [1922-1923]; P08775 [1909-1922]; P08775 [1922-1923]"

推荐答案

library(tidyverse)

input_string <- "P24928 [1909-1922]; [1923-1936]; P08775 [1909-1922]; [1923-1936]"

parts <- input_string |> 
  str_split_1("\\s") |> 
  str_remove(";$")

parts |> 
  matrix(ncol = 3, byrow = TRUE) |> 
  as.data.frame() |> 
  mutate(str_c(V1, " ", V2, "; ", V1, " ", V3, "; ")) |> 
  pull(last_col()) |> 
  str_flatten() |> 
  str_remove(";\\s+$")
#> [1] "P24928 [1909-1922]; P24928 [1923-1936]; P08775 [1909-1922]; P08775 [1923-1936]"

创建于2023-12-10年第reprex v2.0.2

R相关问答推荐

如何将具有重复名称的收件箱合并到R中的另一列中,而结果不同?

Tidyverse/Djirr为从嵌套列表中提取的列名赋值的解决方案

根据收件箱中的特定值提取列名

从有序数据中随机抽样

如何修复R码的置换部分?

抖动点与嵌套类别变量箱形图的位置不对齐

R Highcharts与两个位置关联的注释

pickerInput用于显示一条或多条geom_hline,这些线在图中具有不同 colored颜色

我不能在docker中加载sf

将嵌套列表子集化为嵌套列表

用关联字符串替换列名的元素

从所有项的 struct 相同的两级列表中,将该第二级中的所有同名项绑定在一起

如何通过ggplot2添加短轴和删除长轴?

R -如何分配夜间GPS数据(即跨越午夜的数据)相同的开始日期?

按组内中位数分类

计算使一组输入值最小化的a、b和c的值

在同一单元格中创建包含整数和百分比的交叉表

如何使用list_rind在列表中保留已命名但不包含第0行的记录?

合并多个数据帧,同时将它们的名称保留为列名?

如何在GGPlot中控制多个图例和线型