如何用纯数字替换字符串作为NA?

时间:2016-06-29 08:40:46

标签: regex r stringr

我想替换包含缺少值的纯数字的字符串NA。我尝试了正则表达式^,它匹配字符串的开头,[:digit:]包含数字0-9和+,至少匹配一次,但它们不起作用。

> a<-c("1111","A111","DD41412")
> a[a=="^[:digit:]+"]<-NA
> [1] "1111"    "A111"    "DD41412"

2 个答案:

答案 0 :(得分:3)

我们可以使用grepreplace中的正则表达式基于数字索引(如果我们使用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"