从字符串末尾删除点

时间:2018-06-14 16:00:01

标签: r regex

我的数据集中有一列有25K行,例如MyApp,但有些数字为25.3 95.4 95.6我想删除点。在最后一位数之后。 我怎么做 ?

3 个答案:

答案 0 :(得分:3)

我们可以使用sub来匹配点(. - 是一个元字符,意思是任何字符 - 所以我们要么转义(\\.)或将它放在一个方括号中来评估为字符串末尾($)的点字符,并用空格替换,然后将其转换为numeric

as.numeric(sub("[.]$", "", dat$Col))

答案 1 :(得分:2)

作为@ akrun的答案的替代方案,您可以使用str_remove包中的stringrsub允许您将一个字符串替换为另一个字符串;为了删除字符串,请将其替换为空字符串(即"")。 str_remove提供了一种快捷方式,可以自动处理替换为空字符串的事实。

代表\\.$删除字符串末尾的一个点(在用双反斜杠转义之后)。

x <- c("25.3", "95.4", "95.6", "95.2.", "87.5.")

as.numeric(stringr::str_remove(x, "\\.$"))
#> [1] 25.3 95.4 95.6 95.2 87.5

答案 2 :(得分:0)

有很多方法可以做到这一点;一种是通过反向引用:

sub("(.*?)\\.$", "\\1", string)
[1] "25.3" "95.4" "95.6" "95.2" "87.5"

在这里,您将最后一个 . 之前的所有内容都放入一个捕获组中,并在 sub 的替换参数中“记住”这一点。 数据:

string <- c("25.3", "95.4", "95.6", "95.2.", "87.5.")