如何检查值是否为数字?

时间:2012-11-09 02:51:24

标签: regex r grep decimal numeric

有人可以帮我修改下面的功能,检查号码是否为数字?

# handy function that checks if something is numeric
check.numeric <- function(N){
  !length(grep("[^[:digit:]]", as.character(N)))
}

check.numeric(3243)
#TRUE
check.numeric("sdds")
#FALSE
check.numeric(3.14)
#FALSE

我希望check.numeric()返回TRUE时,它是一个像3.14这样的小数。

2 个答案:

答案 0 :(得分:12)

听起来你想要这样的功能:

f <- function(x) is.numeric(x) & !is.na(x)

答案 1 :(得分:11)

您可以使用is.finite来测试该值是否为数字且非NA。这适用于数值,整数和复数值(如果实部/虚部都是有限的)。

> is.finite(NA)
[1] FALSE
> is.finite(NaN)
[1] FALSE
> is.finite(Inf)
[1] FALSE
> is.finite(1L)
[1] TRUE
> is.finite(1.0)
[1] TRUE
> is.finite("A")
[1] FALSE
> is.finite(pi)
[1] TRUE
> is.finite(1+0i)
[1] TRUE
相关问题