我想做一個邏輯測驗,以區分 except":"僅由數字組成的B字串向量(如 vector )和 except":"不是僅由數字組成的字串向量(如 vector A)。
這個邏輯測驗的名稱可以是is_num_vec(見下文)。這在R中可能嗎?
A = c("prof2:wcf_type2", "prof2:wcf_type3", "1", "c.f_.")
B = c("2:2", "2:3", "1", "2")
is_num_vec <- function(vec){
# Your solution
}
#### EXPECTED OUTPUT:
is_num_vec(A)
> [1] FALSE
is_num_vec(B)
> [1] TRUE
uj5u.com熱心網友回復:
這是一個非常簡單的解決方案,可能適合您的目的:
首先從 中洗掉:,vec然后使用grepl()來測驗是否所有元素vec都只是數字^[0-9]{1,}$。用于all()測驗是否所有邏輯值都是TRUE.
is_num_vec <- function(vec){
all(grepl("^[0-9]{1,}$", gsub(":", "", vec)))
}
is_num_vec(A)
[1] FALSE
is_num_vec(B)
[1] TRUE
is_num_vec("5a3")
[1] FALSE
uj5u.com熱心網友回復:
sum()這是使用with的一種基本方法grepl():
is_num_vec <- function(vec) {
return(sum(grepl("^\\d (?::\\d )*$", vec)) == length(vec))
}
is_num_vec(A) # [1] FALSE
is_num_vec(B) # [1] TRUE
資料:
A <- c("prof2:wcf_type2", "prof2:wcf_type3", "1", "c.f_.")
B <- c("2:2", "2:3", "1", "2")
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/448805.html
