1

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

4

2 回答 2

4
fun <- function(vec) all(vec >= 0 & vec <= 9 & vec%%1==0)
vec <- 0:9
fun(vec)
#TRUE
vec2 <- 5:14
fun(vec2)
#FALSE
于 2013-11-13T03:51:35.537 回答
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
于 2013-11-13T11:21:21.143 回答