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