在整数或字符串中查找小数点的位置

时间:2018-02-23 09:13:36

标签: r

如果我想确定整数中小数点的位置,例如,在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

2 个答案:

答案 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