检查向量是否只有正的一位数字(包括0)

时间:2013-11-13 03:35:57

标签: r

有没有一种简单的方法来检查一个向量是否只包含正的一位数字(即只有0到9的数字)?

2 个答案:

答案 0 :(得分:4)

fun <- function(vec) all(vec >= 0 & vec <= 9 & vec%%1==0)
vec <- 0:9
fun(vec)
#TRUE
vec2 <- 5:14
fun(vec2)
#FALSE

答案 1 :(得分:2)

另一种方法是使用nchar来查看字符而不是数字,因此夜晚nchar > 1的数字为十进制,负数字,两位数等。

all(nchar(0:9) == 1)
#[1] TRUE
all(nchar(0:12) == 1) #double digits
#[1] FALSE
all(nchar(-5:1) == 1)  #negative
#[1] FALSE
all(nchar(runif(5, 0, 9)) == 1) #decimal between 0 and 9
#[1] FALSE
nchar(1.00) #!
#[1] 1