[R] Compare three or more values?

Marc Schwartz marc_schwartz at me.com
Wed Mar 23 19:48:10 CET 2011


On Mar 23, 2011, at 11:01 AM, Beale, Holly (NIH/NHGRI) [F] wrote:

> Is there a less cryptic way to compare three or more values?
> 
> allTheSame<-c("red","red","red","red")
> notAllTheSame<-c(132,132,132,999)
> 
> all.identical <- function(vectorToTest){
>    cIdentical=sum(vectorToTest %in% vectorToTest[1])
>    return(cIdentical==length(vectorToTest))
>    }
> 
> all.identical(allTheSame)
> all.identical(notAllTheSame)
> 
> Thanks in advance,
> Holly


See ?unique

allTheSame <- c("red","red","red","red")
notAllTheSame <- c(132,132,132,999)

> length(unique(allTheSame)) == 1
[1] TRUE
 
> length(unique(notAllTheSame)) == 1
[1] FALSE


Note that this is fine for character and integer values, but should not be expected to work for floats. 

In the latter case, see ?all.equal and R FAQ 7.31: Why doesn't R think these numbers are equal?

HTH,

Marc Schwartz



More information about the R-help mailing list