我正在SO 阅读这个问题,并想知道是否有任何方式以矢量化的方式使用is.numeric.关键是,如果你有一个矢量化的方法来检查一个变量是否是数字,那么任何依赖于数字变量的函数都可以被矢量化.否则,它无法进行矢量化.
根据评论:
如果您要使用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
Run Code Online (Sandbox Code Playgroud)
或者,对于多样性,您可以使用colwiseplyr包:
> colwise(is.numeric)(dat)
v1 v2 v3 v4
1 TRUE FALSE TRUE FALSE
Run Code Online (Sandbox Code Playgroud)