删除第一个“。”来自 R 中的值

Remove first "." from values in R

我在 R 中有一个具有不同值的数据集。在同一列中,一些值如 11.474,另一些如 1.034.496。我想用两个点将值从 1.034.496 更改为 1034.496。有没有人可以帮助我?

感谢您的帮助!

我想肯定有比下面的方法更聪明的 regex 方法,但这是我的尝试

> ifelse(lengths(gregexpr("\.",v))>1,sub("\.","",v),v)
[1] "11.474"   "1034.496"

哪里

v <- c("11.474","1.034.496")

gsub 与 Perl 正则表达式一起使用:

df <- data.frame(a = c('11.474', '1.034.496', '1.234.034.496'))
df$a = gsub('[.](?=.*[.])', '', df$a, perl = TRUE)
print(df)
##             a
## 1      11.474
## 2    1034.496
## 3 1234034.496

这里,[.](?=.*[.])是一个字面点(必须像\.这样转义或者像这样放入一个字符class:[.]),然后是使用正面前瞻的文字点:(?=PATTERN).