In rereading this, the solution works but my comments on the names of APL operators was off. I think this would make more sense in terms of naming:
"%all.==%" <- function(a,b)apply(b,2,function(x)apply(t(a) == x,2,all)) colSums( A %all.==% t(unique(A)) ) Gabor Grothendieck <ggrothendieck <at> myway.com> writes: : : Kissell, Robert [EQRE] <robert.kissell <at> citigroup.com> writes: : : > I would like to learn how I can group the data on unique rows of A and also : count the number of times the row : > occurred. : : You have already provided the answer, unique(A), to the first part of your : question. Here are two solutions to the second part: : : 1. Since each row can be regarded as the representation of a binary : number: : : table(A%*%2^(0:3)) : : 2. Another possibility not dependent on the binary nature of the : data is to define: : : "%+.*%" <- function(a,b)apply(b,2,function(x)apply(t(a) == x,2,all)) : : This function is the +.x of APL. It defines an infix function that does a : matrix multiply of matrix a and matrix b except it replaces the usual inner : product of two vectors x and y with all(x==y). : : In terms of this function, the answer is: : : colSums( A %+.*% t(unique(A)) ) ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
