[R] Data Grouping Question
Gabor Grothendieck
ggrothendieck at myway.com
Wed Mar 31 01:46:55 CEST 2004
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)) )
More information about the R-help
mailing list