Hi: Here are two more candidates, using the plyr and data.table packages:
library(plyr) ddply(X, .(x, y), function(d) length(unique(d$z))) x y V1 1 1 1 2 2 1 2 2 3 2 3 2 4 2 4 2 5 3 5 2 6 3 6 2 The function counts the number of unique z values in each sub-data frame with the same x and y values. The argument d in the anonymous function is a data frame object. # data.table version: library(data.table) dX <- data.table(X, key = 'x, y') dX[, list(nz = length(unique(z))), by = 'x, y'] x y nz [1,] 1 1 2 [2,] 1 2 2 [3,] 2 3 2 [4,] 2 4 2 [5,] 3 5 2 [6,] 3 6 2 The key columns sort the data by x, y combinations and then find nz in each data subset. If you intend to do a lot of summarization/data manipulation in R, these packages are worth learning. HTH, Dennis On Tue, Jan 25, 2011 at 11:25 AM, Ryan Utz <utz.r...@gmail.com> wrote: > Hi R-users, > > I'm trying to find an elegant way to count the number of rows in a > dataframe > with a unique combination of 2 values in the dataframe. My data is > specifically one column with a year, one with a month, and one with a day. > I'm trying to count the number of days in each year/month combination. But > for simplicity's sake, the following dataset will do: > > x<-c(1,1,1,1,2,2,2,2,3,3,3,3) > y<-c(1,1,2,2,3,3,4,4,5,5,6,6) > z<-c(1,2,3,4,5,6,7,8,9,10,11,12) > X<-data.frame(x y z) > > So with dataset X, how would I count the number of z values (3rd column in > X) with unique combinations of the first two columns (x and y)? (for > instance, in the above example, there are 2 instances per unique > combination > of the first two columns). I can do this in Matlab and it's easy, but since > I'm new to R this is royally stumping me. > > Thanks, > Ryan > > -- > Ryan Utz > Postdoctoral research scholar > University of California, Santa Barbara > (724) 272 7769 > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.