基于多个条件分割R字符串(数据没有像空格或逗号这样的简单描述来分隔)

问题描述 投票:0回答:1

我有一个数据集,其中每一行都是一个像这样的字符串(并且都在一列下):

雅各比·布里塞特O 206.5-115U 206.5-115乔·布罗O 243.5-115U 243.5-155。

我想将其分成行和列,如下所示:

姓名 O/U线
雅各比布里塞特 206.5
乔·伯罗 243.5

如果需要,我可以发布特定的代码,但这很好地说明了我的确切问题,因此您可以键入示例字符串并尝试在 R 中自行修复它。我已经到处寻找解决方案,但大多数类似的问题通过用逗号或空格分隔可以轻松解决,如您所见,在这种情况下这是几乎不可能的。

我尝试使用单独的 tidyverse 函数、gsub 函数、str_remove 函数和 str_split_fixed 函数。我无法弄清楚使这些功能起作用的参数,我什至不知道这些功能是否会起作用,这对我没有多大帮助。

如果有任何帮助,我将不胜感激。这只是我想要开始的一个个人项目。谢谢!

r string dataframe separator
1个回答
0
投票

我们假设

  • 紧接着大写字母和小写字母的数字应在数字后插入换行符。

  • O 后紧跟空格分隔名称和值并且

  • 减号后面的所有内容都被省略

然后我们就可以使用这段代码了:

Lines <- "Jacoby BrissettO 206.5-115U 206.5-115Joe BurrowO 243.5-115U 243.5-155."

Lines |>
  gsub("(\\d)([A-Z][a-z])", "\\1\n\\2", x = _) |>
  gsub("O ", ",", x = _) |>
  read.table(text = _, sep = ",", comment = "-", col.names = c("Name", "Value"))

给予

             Name Value
1 Jacoby Brissett 206.5
2      Joe Burrow 243.5
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.