相关疑难解决方法(0)

拆分并提取R中字符串的一部分(在"."和数字之间)

我有一个字符变量(companies),其观察结果如下所示:

  1. "612. Grt.Am.Dgt.&Inv.7.33"
  2. "77. Wickes 4.61"
  3. "265. Wang Labs 8.75"
  4. "9. CrossLand Savings 6.32"
  5. "228. JPS Textile Group 2.00"

我试图将这些字符串分成3部分:

  1. 第一个之前的所有数字".",
  2. 第一个"."和下一个数字之间的所有内容(格式一致#.##),以及
  3. 最后一个数字本身(格式#.##).

以第一个障碍为例,我想:"612","Grt.Am.CMt&Inv","5.01"

我尝试过定义模式rebus并使用str_match,但下面的代码仅适用于像obs#2和#3这样的情况.它并不反映字符串中间部分的所有变化以捕获其他障碍物.

pattern2 <- capture(one_or_more(DGT)) %R% DOT %R% SPC %R% 
            capture(or(one_or_more(WRD), one_or_more(WRD) %R% SPC 
            %R% one_or_more(WRD))) %R% SPC %R% capture(DGT %R% DOT 
            %R% one_or_more(DGT))

str_match(companies, pattern = pattern2)
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法将字符串分成这3个部分?

我不熟悉regex,但我已经看到了很多建议(我是R和Stack Overflow的新手)

regex r stringr

7
推荐指数
1
解决办法
145
查看次数

标签 统计

r ×1

regex ×1

stringr ×1