[Rd] grep, gsub, sub have problems with NA values (PR#3078)

gregory_r_warnes at groton.pfizer.com gregory_r_warnes at groton.pfizer.com
Thu May 22 23:32:13 MEST 2003

In a string context, grep, gsub, sub are improperly treating NA (missing) as
the string "NA", and returning unexpected results

> grep("A", c(NA,"NA"))
[1] 1 2

# expected: 
# [1] 2

> gsub("A", "X", c(NA,"NA"))
[1] "NX" "NX"
# expected
# [1] NA "NX"

> sub("A", "X", c(NA,"NA"))
[1] "NX" "NX"
# expected
# [1] NA "NX"

These same functions also don't like 'bare' NA's, presumably because a bare
NA is technically a factor object.  

> grep("A", NA)
Error in grep(pattern, x, ignore.case, extended, value) : 
 invalid argument

This is, understandable to users who are aware of the actual class of NA,
but it would be helpful if bare NAs were treated the same as character NAs
(when handling of these is fixed, of course!).


LEGAL NOTICE\ Unless expressly stated otherwise, this message is... {{dropped}}

More information about the R-devel mailing list