如果我想确定整数中小数点的位置,例如,在524.79中,小数点的位置是4,这就是我想要的R输出;我应该使用哪个功能或命令?我尝试过使用gregexpr和regexpr,但每次输出都是1.
这就是我所做的:
x <- 524.79
gregexpr(pattern = ".", "x")
输出如下:
[[1]]
[1] 1
attr(,"match.length")
[1] 1
attr(,"useBytes")
[1] TRUE
答案 0 :(得分:3)
.
是一个元字符,表示任何字符。它需要转义(\\.
)或将其放在方括号[.]
内或使用fixed = TRUE
来获取文字字符
as.integer(gregexpr(pattern = ".", x, fixed = TRUE))
#[1] 4
或紧凑的选项是str_locate
library(stringr)
unname(str_locate(x, "[.]")[,1])
#[1] 4
OP解决方案中的第二个问题是引用对象x
。因此,gregexpr
将.
定位为1,因为只有一个字符&#34; x&#34;这是第一个职位
x <- 524.79
答案 1 :(得分:3)
我们实际上可以在这里使用正则表达式:
x <- "524.79"
nchar(sub("(?<=\\.)\\d+", "", x, perl=TRUE))
4