是否有使用is.numeric的矢量化方法?

时间:2012-01-30 14:39:17

标签: r vectorization

我正在SO上阅读this question,并想知道是否有任何方式以矢量化的方式使用is.numeric。关键是,如果你有一个矢量化的方法来检查一个变量是否是数字,那么任何依赖于数字变量的函数都可以被矢量化。否则,它无法进行矢量化。

2 个答案:

答案 0 :(得分:7)

根据评论:

如果您要使用as.numeric测试data.frame的列,请使用apply

> dat <- data.frame(v1=1:5,v2=letters[1:5],v3=rnorm(5),v4=c(1,2,'c','d',5))

> sapply(dat,is.numeric)
   v1    v2    v3    v4 
 TRUE FALSE  TRUE FALSE 

或者,对于多样性,您可以使用plyr包中的colwise

> colwise(is.numeric)(dat)
    v1    v2   v3    v4
1 TRUE FALSE TRUE FALSE

答案 1 :(得分:0)

这应该会产生预期的结果:

rep(is.numeric(x), length(x))