[R] More elegant way of excluding rows with equal values in any 2 columns?

Dimitri Liakhovitski ld7631 at gmail.com
Mon Sep 21 20:14:26 CEST 2009


Hello, dear R-ers!

I built a data frame "grid" (below) with 4 columns. I want to exclude
all rows that have equal values in ANY 2 columns. Here is how I am
doing it:

index<-expand.grid(1:4,1:4,1:4,1:4)
dim(index)
# Deleting rows that have identical values in any two columns (1 line of code):
index<-index[!(index$Var1==index$Var2)&!(index$Var1==index$Var3)&!(index$Var1==index$Var4)&!(index$Var2==index$Var3)&!(index$Var2==index$Var4)&!(index$Var3==index$Var4),]
dim(index)
index


I was wondering if there is a more elegant way of doing it - because
as the number of columns increases, the amount of code one would have
to write increases A LOT.

Thank you very much for any suggestion!



-- 
Dimitri Liakhovitski
Ninah.com
Dimitri.Liakhovitski at ninah.com




More information about the R-help mailing list