[R] test if elements of a character vector contain letters
Bert Gunter
gunter.berton at gene.com
Mon Aug 6 18:42:03 CEST 2012
nzchar(x) & !is.na(x)
No?
-- Bert
On Mon, Aug 6, 2012 at 9:25 AM, Liviu Andronic <landronimirc at gmail.com> 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
>
> ______________________________________________
> R-help at r-project.org 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
More information about the R-help
mailing list