删除第一个“。”来自 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)
.
我在 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)
.