我想替换包含缺少值的纯数字的字符串NA。我尝试了正则表达式^
,它匹配字符串的开头,[:digit:]
包含数字0-9和+
,至少匹配一次,但它们不起作用。
> a<-c("1111","A111","DD41412")
> a[a=="^[:digit:]+"]<-NA
> [1] "1111" "A111" "DD41412"
答案 0 :(得分:3)
我们可以使用grep
和replace
中的正则表达式基于数字索引(如果我们使用grepl
的逻辑索引)和NA。
a1 <- replace(a, grep("^[0-9]+", a), NA)
a1
#[1] NA "A111" "DD41412"
答案 1 :(得分:3)
我们也可以使用它:
a[!is.na(as.integer(a))] <- NA
# [1] NA "A111" "DD41412"