HI that did not work for me either. The value I got returned from that function was "<rounded mean> - <rounded mean>" :(. thanks for the reply through
On Tue, Apr 19, 2016 at 10:34 AM, William Dunlap <wdun...@tibco.com> wrote: > > That didn't work Jim! > > It always helps to say how the suggestion did not work. Jim's > function had a typo in it - was that the problem? Or did you not > change the call to ddply to use that function. Here is something > that might "work" for you: > > library(plyr) > > data <- data.frame(groupColumn=rep(1:5,1:5), col1=2^(0:14)) > myIqr <- function(x) { > paste(round(quantile(x,0.25),0),round(quantile(x,0.75),0),sep="-") > } > ddply(data, ~groupColumn, summarise, col1_myIqr=myIqr(col1), > col1_IQR=stats::IQR(col1)) > # groupColumn col1_myIqr col1_IQR > #1 1 1-1 0 > #2 2 2-4 1 > #3 3 12-24 12 > #4 4 112-320 208 > #5 5 2048-8192 6144 > > The important point is that > paste(round(quantile(x,0.25),0),round(quantile(x,0.75),0),sep="-") > is not a function, it is an expression. ddplyr wants functions. > > > Bill Dunlap > TIBCO Software > wdunlap tibco.com > > On Tue, Apr 19, 2016 at 7:56 AM, Michael Artz <michaelea...@gmail.com> > wrote: > >> That didn't work Jim! >> >> Thanks anyway >> >> On Mon, Apr 18, 2016 at 9:02 PM, Jim Lemon <drjimle...@gmail.com> wrote: >> >> > Hi Michael, >> > At a guess, try this: >> > >> > iqr<-function(x) { >> > >> return(paste(round(quantile(x,0.25),0),round(quantile(x,0.75),0),sep="-") >> > } >> > >> > .col3_Range=iqr(datat$tenure) >> > >> > Jim >> > >> > >> > >> > On Tue, Apr 19, 2016 at 11:15 AM, Michael Artz <michaelea...@gmail.com> >> > wrote: >> > > Hi, >> > > I am trying to show an interquartile range while grouping values >> using >> > > the function ddply(). So my function call now is like >> > > >> > > groupedAll <- ddply(data >> > > ,~groupColumn >> > > ,summarise >> > > ,col1_mean=mean(col1) >> > > ,col2_mode=Mode(col2) #Function I wrote for getting >> the >> > > mode shown below >> > > >> > > ,col3_Range=paste(as.character(round(quantile(datat$tenure,c(.25)))), >> > > as.character(round(quantile(data$tenure,c(.75)))), sep = "-") >> > > ) >> > > >> > > #custom Mode function >> > > Mode <- function(x) { >> > > ux <- unique(x) >> > > ux[which.max(tabulate(match(x, ux)))] >> > > } >> > > >> > > I am not sre what is going wrong on my interquartile range function, >> it >> > > works on its own outside of ddply() >> > > >> > > [[alternative HTML version deleted]] >> > > >> > > ______________________________________________ >> > > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >> > > 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 -- To UNSUBSCRIBE and more, see >> 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 -- To UNSUBSCRIBE and more, see 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.