有没有一种简单的方法来检查一个向量是否只包含正的一位数字(即只有0到9的数字)?
答案 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