On Mon, Aug 6, 2012 at 6:42 PM, Bert Gunter <[email protected]> wrote: > nzchar(x) & !is.na(x) > > No? >
It doesn't work for what I need: > x [1] "a10" "b8" "c9" "d2" "e3" "f4" "g1" "h7" "i6" "j5" "k" "l" "m" "n" [15] "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z" "1" "2" [29] "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" "15" "16" [43] "17" "18" "19" "20" "21" "22" "23" "24" "25" "26" > nzchar(x) & !is.na(x) [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [18] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [35] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE [52] TRUE I need to have TRUE when an element contains a letter, and FALSE when an element contains only numbers. The above returns TRUE for the entire vector. Regards Liviu > On Mon, Aug 6, 2012 at 9:25 AM, Liviu Andronic <[email protected]> wrote: >> Dear all >> I'm pretty sure that I'm approaching the problem in a wrong way. >> Suppose the following character vector: >>> (x[1:10] <- paste(x[1:10], sample(1:10, 10), sep='')) >> [1] "a10" "b7" "c2" "d3" "e6" "f1" "g5" "h8" "i9" "j4" >>> x >> [1] "a10" "b7" "c2" "d3" "e6" "f1" "g5" "h8" "i9" "j4" "k" >> "l" "m" "n" >> [15] "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" >> "z" "1" "2" >> [29] "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" >> "14" "15" "16" >> [43] "17" "18" "19" "20" "21" "22" "23" "24" "25" "26" >> >> >> How do you test whether the elements of the vector contain at least >> one letter (or at least one digit) and obtain a logical vector of the >> same dimension? I came up with the following awkward function: >> is_letter <- function(x, pattern=c(letters, LETTERS)){ >> sapply(x, function(y){ >> any(sapply(pattern, function(z) grepl(z, y, fixed=T))) >> }) >> } >> >>> is_letter(x) >> a10 b7 c2 d3 e6 f1 g5 h8 i9 j4 k >> l m n o >> TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE >> TRUE TRUE TRUE TRUE >> p q r s t u v w x y z >> 1 2 3 4 >> TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE >> FALSE FALSE FALSE FALSE >> 5 6 7 8 9 10 11 12 13 14 15 >> 16 17 18 19 >> FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE >> FALSE FALSE FALSE FALSE >> 20 21 22 23 24 25 26 >> FALSE FALSE FALSE FALSE FALSE FALSE FALSE >>> is_letter(x, 0:9) ##function slightly misnamed >> a10 b7 c2 d3 e6 f1 g5 h8 i9 j4 k >> l m n o >> TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE >> FALSE FALSE FALSE FALSE >> p q r s t u v w x y z >> 1 2 3 4 >> FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE >> TRUE TRUE TRUE TRUE >> 5 6 7 8 9 10 11 12 13 14 15 >> 16 17 18 19 >> TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE >> TRUE TRUE TRUE TRUE >> 20 21 22 23 24 25 26 >> TRUE TRUE TRUE TRUE TRUE TRUE TRUE >> >> >> Is there a nicer way to do this? Regards >> Liviu >> >> >> -- >> Do you know how to read? >> http://www.alienetworks.com/srtest.cfm >> http://goodies.xfce.org/projects/applications/xfce4-dict#speed-reader >> Do you know how to write? >> http://garbl.home.comcast.net/~garbl/stylemanual/e.htm#e-mail >> >> ______________________________________________ >> [email protected] mailing list >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. > > > > -- > > Bert Gunter > Genentech Nonclinical Biostatistics > > Internal Contact Info: > Phone: 467-7374 > Website: > http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm -- Do you know how to read? http://www.alienetworks.com/srtest.cfm http://goodies.xfce.org/projects/applications/xfce4-dict#speed-reader Do you know how to write? http://garbl.home.comcast.net/~garbl/stylemanual/e.htm#e-mail ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.

