[R] Targeting the elements that satisfy matching rules excluding the NA

Giovanni Malerba bobo at medgen.univr.it
Wed Jan 5 19:16:14 CET 2005


Dear R-List,
here my problem:
> a <- c("gio","gao","geo",NA,"1","alpha")
> b <- 1:6
> data.frame(V1=a,V2=b) -> c
> c
     V1 V2
1   gio  1
2   gao  2
3   geo  3
4  <NA>  4
5     1  5
6 alpha  6

> rownames(c) %in% grep("a",as.character(c$V1))
[1] FALSE  TRUE FALSE FALSE FALSE  TRUE

while I would like to obtain
[1] FALSE  TRUE FALSE <NA> FALSE  TRUE

Is there a simple way to do this without doing things like
> rownames(c) %in% grep("a",as.character(c$V1)) -> tmp
> tmp[is.na(c$V1)]<- NA
?

It would be nice if grep (or another command) produced FALSE or TRUE according 
to the matching rule and NA if the value is NA. I was not able to find such a 
feature (just to do this in one simple command-line :)).

Thank you,
Giovanni Malerba.




More information about the R-help mailing list