假设我有一个向量
x <- c('a', 'b', 1, 2)
Run Code Online (Sandbox Code Playgroud)
对我来说,获得指示 的组件是否x为数字的输出的最简单方法是什么?即,输出应该是
something(x)
[1] FALSE FALSE TRUE TRUE
Run Code Online (Sandbox Code Playgroud)
我知道如何做到这一点的方法是转换x为矩阵并使用apply:
apply(as.matrix(x), FUN = is.numeric, MARGIN = 1)
Run Code Online (Sandbox Code Playgroud)
但是经过测试,这实际上不起作用 - 我忘记了类型被强制转换为字符串。
我们可以使用is.na和as.numeric
!is.na(as.numeric(x))
#[1] FALSE FALSE TRUE TRUE
Run Code Online (Sandbox Code Playgroud)
友好的警告
或用于grep仅匹配从 start ( ^) 到 end ( $) 的数字元素
grepl("^-?[0-9.]+$", x)
#[1] FALSE FALSE TRUE TRUE
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3436 次 |
| 最近记录: |