On 6/21/2011 11:30 AM, Idris Raja wrote:
I have a dataframe df with two columns x and y. I want to count the number
of times a unique x, y combination occurs.
For example
x<- c(1,2,3,4,5,1,2,3,4)
y<- c(1,2,3,4,5,1,2,4,1)
df<-as.data.frame(cbind(x, y))
#what is the correct way to use ddply for this example?
ddply(df, c('x','y', summarize, ??)
#desired output -- format and order doesn't matter
# (x, y) count
#--------------------
# (1, 1) 2
# (2, 2) 2
# (3, 3) 1
# (4, 4) 1
# (5, 5) 1
# (2, 3) 1
# (3, 4) 1
# (4, 1) 1
[[alternative HTML version deleted]]
Jorge and Dennis gave good responses that get you to the result you
asked for, but for completeness I thought I'd include some ddply versions:
ddply(d, .(x, y), summarize, freq=length(x))
This uses the summarize function you were asking about, however you can
also do it with:
ddply(d, .(x, y), nrow)
or
ddply(d, .(x, y), as.data.frame(nrow))
The latter giving a slightly nicer name (value instead of V1).
As an aside, I prefer using the "summarise" spelling of the function
when I do use it, because it won't clash with Hmisc::summarize.
ddply(d, .(x, y), summarise, freq=length(x))
--
Brian S. Diggs, PhD
Senior Research Associate, Department of Surgery
Oregon Health & Science University
______________________________________________
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.