我有一个数据集,其中每一行都是一个像这样的字符串(并且都在一列下):
雅各比·布里塞特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 函数。我无法弄清楚使这些功能起作用的参数,我什至不知道这些功能是否会起作用,这对我没有多大帮助。
如果有任何帮助,我将不胜感激。这只是我想要开始的一个个人项目。谢谢!
我们假设
紧接着大写字母和小写字母的数字应在数字后插入换行符。
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