Re: [R] How to apply a function to subsets of a data frame *and* obtain a data frame again?

2011-08-17 Thread Dennis Murphy
Hi: I would agree with Paul Hiemstra about using Hadley's code instead; see ?plyr:::mutate for details. It would also make sense to sort the data and edf by group - this does it in one line: arrange(ddply(df, .(Group), mutate, edf = edf(Value)), Group, edf) HTH, Dennis On Wed, Aug 17, 2011 at 4

Re: [R] How to apply a function to subsets of a data frame *and* obtain a data frame again?

2011-08-17 Thread Dimitris Rizopoulos
Have a look at function ave(), e.g., set.seed(1) (df <- data.frame(Group=rep(c("Group1","Group2","Group3"), each=10), Value=c(rexp(10, 1), rexp(10, 4), rexp(10, 10)))[sample(1:30,30),]) edf <- function(x) ecdf(x)(x) df$edf <- with(df, ave(Value, Group, FUN = edf)) df I hope it helps. Best

Re: [R] How to apply a function to subsets of a data frame *and* obtain a data frame again?

2011-08-17 Thread Paul Hiemstra
On 08/17/2011 11:51 AM, Marius Hofert wrote: > Dear all, > > thanks a lot for the quick help. > Below is what I built with the hint of Nick. > > Cheers, > > Marius > > > library(plyr) > > set.seed(1) > (df <- data.frame(Group=rep(c("Group1","Group2","Group3"), each=10), > Value=

Re: [R] How to apply a function to subsets of a data frame *and* obtain a data frame again?

2011-08-17 Thread Marius Hofert
Dear all, thanks a lot for the quick help. Below is what I built with the hint of Nick. Cheers, Marius library(plyr) set.seed(1) (df <- data.frame(Group=rep(c("Group1","Group2","Group3"), each=10), Value=c(rexp(10, 1), rexp(10, 4), rexp(10, 10)))[sample(1:30,30),]) edf <-

Re: [R] How to apply a function to subsets of a data frame *and* obtain a data frame again?

2011-08-17 Thread Hadley Wickham
> The following example does what you want using ddply: > > library(plyr) > edfPerGroup = ddply(df, .(Group), summarise, edf = edf(Value), Value = > Value) Or slightly more succinctly: ddply(df, .(Group), mutate, edf = edf(Value)) Hadley -- Assistant Professor / Dobelman Family Junior Chair De

Re: [R] How to apply a function to subsets of a data frame *and* obtain a data frame again?

2011-08-17 Thread Paul Hiemstra
ounces@r- >> project.org] On Behalf Of Marius Hofert >> Sent: woensdag 17 augustus 2011 12:42 >> To: Help R >> Subject: [R] How to apply a function to subsets of a data frame *and* >> obtain a data frame again? >> >> Dear all, >> >> First, let'

Re: [R] How to apply a function to subsets of a data frame *and* obtain a data frame again?

2011-08-17 Thread Nick Sabbe
ilto:r-help-bounces@r- > project.org] On Behalf Of Marius Hofert > Sent: woensdag 17 augustus 2011 12:42 > To: Help R > Subject: [R] How to apply a function to subsets of a data frame *and* > obtain a data frame again? > > Dear all, > > First, let's create some data

[R] How to apply a function to subsets of a data frame *and* obtain a data frame again?

2011-08-17 Thread Marius Hofert
Dear all, First, let's create some data to play around: set.seed(1) (df <- data.frame(Group=rep(c("Group1","Group2","Group3"), each=10), Value=c(rexp(10, 1), rexp(10, 4), rexp(10, 10)))[sample(1:30,30),]) ## Now we need the empirical distribution function: edf <- function(x) e