我有一个数据集,给我网球成绩,但作为字符类型,如"6-4 3-6 6-2"
和"7-6(6) 6-2"
。我想把在比赛中玩的所有游戏加起来,所以我需要删除连字符、空格和平局得分,在第二个例子中被看作是(6)
。然后,将它们转换为双打,并将每一个人的数字相加,以得到比赛中的总游戏数,因此对于第一和第二个例子,所玩的游戏总数分别为27和21。
到目前为止,我可以通过使用字符串包和str_replace_all(score, c("-" = "", " " = ""))
来处理删除破折号和空格的问题,这给了我一个带有数字的字符串。我不知道如何从字符串中移除分值,因为括号之间的值可以是任何值。不知何故,需要弄清楚如何将"(...)"
替换为""
,其中任何字符串都可以放在括号内(在我的例子中,只有一个数字)。此外,括号可以出现在字符串的任何位置。
发布于 2022-10-25 17:22:43
games <- c("6-4 3-6 6-2" , "7-6(6) 6-2")
sub("\\(.*\\)", "", games) |>
strsplit(split="-|\\s*") |>
sapply(function(x) sum(as.numeric(x), na.rm = TRUE))
[1] 27 21
https://stackoverflow.com/questions/74197879
复制相似问题