[R] How to compare X1 = X2 = ... = Xn?

Robin Hankin rksh at soc.soton.ac.uk
Tue Jul 20 10:12:54 CEST 2004


just one more that seems natural but hasn't been mentioned:

library(magic)
x <- data.frame(a=c(1,2,1,2,1),b=c(1,2,2,1,2),c=c(1,2,1,2,1))
apply(x,1,minmax)

     1     2     3     4     5
  TRUE  TRUE FALSE FALSE FALSE
>

[
here
  minmax <-
function (x)
{
     max(x) == min(x)
}

]


rksh


>How about:
>
>
>X<-as.matrix(yourframe)
>apply(X,2, '==',X[,1])%*%rep(1,ncol(X)) == ncol(x)
>
>avoiding the rowwise apply overhead?
>
>Cheers,
>
>Bert Gunter
>
>Non-Clinical Biostatistics
>Genentech
>MS: 240B
>Phone: 650-467-7374
>
>
>"The business of the statistician is to catalyze the scientific learning
>process."
>
>  -- George E.P. Box
>F Duan wrote:
>
>>  Dear All,
>>
>>
>>
>>  I have a data frame with n columns: X1, X2, ., Xn. Now I want to create a
>>  new column: if X1 = X2 = . = Xn, the value is 1; Otherwise, the value is 0.
>>
>>
>>
>>  How to do that in a quick way instead of doing (n choose 2) comparisons?
>>
>>
>>
>>  Thank you,
>>
>>
>>
>  > Frank
>

-- 
Robin Hankin
Uncertainty Analyst
Southampton Oceanography Centre
SO14 3ZH
tel +44(0)23-8059-7743
initialDOTsurname at soc.soton.ac.uk (edit in obvious way; spam precaution)




More information about the R-help mailing list