gpt4 book ai didi

r - 使用 str_replace 有条件替换

转载 作者:行者123 更新时间:2023-12-01 11:13:33 25 4
gpt4 key购买 nike

我有这样的数据:

d = as.character(c("1,23", "1,23.23", "1.23", "-1.2", "1,23.234"))

如果一个字符串有标点符号和逗号,我想删除标点符号后面的字符和标点符号本身。

结果应如下所示:

 d = as.character(c("1,23", "1,23", "1.23", "-1.2", "1,23")) 

问题是我无法使用 str_replace,因为它也会删除其他字符串。

library(stringr)

str_replace(d,"\\.[0-9]+", "")
[1] "1,23" "1,23" "1" "-1" "1,23"

最佳答案

我们可以匹配一个或多个数字后跟逗号或点和一个或多个数字的模式,捕获为一组 ((...)),并在替换中使用组的反向引用 (\\1)

sub("^(-?\\d+[,.]\\d+).*", "\\1", d)
#[1] "1,23" "1,23" "1.23" "-1.2" "1,23"

或者在str_replace中使用相同的模式

library(stringr)
str_replace(d, "^(-?\\d+[,.]\\d+).*", "\\1")
#[1] "1,23" "1,23" "1.23" "-1.2" "1,23"

关于r - 使用 str_replace 有条件替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56517152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com