[R] A logical comparison between two character strings in R

Petr Pikal petr.pikal at precheza.cz
Thu Aug 21 17:12:47 CEST 2003



On 21 Aug 2003 at 15:49, Lun Li wrote:

> Thanks.
> 
> But, my question is:
> 
> > pro.name[1]
>        V1
> 1 B-29BT3
> > temp.name[1]
>     V1
> 1 A-1H
> > if(tem.name[1]==pro.name[1]){cat("ok")}
> 
> Error in Ops.factor(left, right) : Level sets of factors are different

I suppose your variables are actually factors not characer vectors.

see

> temp.name
[1] B-29BT3   ccc-29BT3
Levels: B-29BT3 ccc-29BT3
> pro.name
[1] B-29BT3 B-29BT3
Levels: B-29BT3
> if(temp.name[1]==pro.name[1]){cat("ok")}
Error in Ops.factor(temp.name[1], pro.name[1]) : 
        Level sets of factors are different
>

but

> pro.name.ch
[1] "B-29BT3" "B-29BT3"
> temp.name.ch
[1] "B-29BT3"   "ccc-29BT3"
> if(temp.name.ch[1]==pro.name.ch[1]){cat("ok")}
ok
 

> 
> How to compare them?

make them character, see ?as.character
> 
> 
> Lun
> 
> 
> 
> Quoting Peter Dalgaard BSA <p.dalgaard at biostat.ku.dk>:
> 
> > Lun Li <lun.li at glg.ed.ac.uk> writes:
> > 
> > > Dear All,
> > > 
> > > Does anyone know how to compare two character strings in R?  For
> > eample, how 
> > > to compare "A-1-B" with "cc-10000" in logical ?
> > 
> > Ehhh... Is it this that you want?
> > 
> > >  "A-1-B" == "cc-10000"
> > [1] FALSE
> > >  "A-1-B" <= "cc-10000"
> > [1] TRUE
> > >  "A-1-B" > "cc-10000"
> > [1] FALSE
> > >  "d-1-B" > "cc-10000"
> > [1] TRUE
> > 
> > 
> > -- 
> >    O__  ---- Peter Dalgaard             Blegdamsvej 3  
> >   c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
> >  (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45)
> >  35327918
> > ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)             FAX: (+45)
> > 35327907
> >
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help

Petr Pikal
petr.pikal at precheza.cz




More information about the R-help mailing list