NO NO -- I am wrong! The paste() expression is of course evaluated. It's just that a character string is returned of the form "something - something".
I apologize for the confusion. -- Bert Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Tue, Apr 19, 2016 at 10:25 AM, Bert Gunter <bgunter.4...@gmail.com> wrote: > To be precise: > > paste(round(quantile(x,0.25),0),round(quantile(x,0.75),0),sep="-") > > is an expression that evaluates to a character string: > "round(quantile(x,.25),0) - round(quantile(x,0.75),0)" > > no matter what the argument of your function, x. Hence > > return(paste(...)) will return this exact character string and never > evaluates x. > > > Cheers, > Bert > > > > > > > > > Bert Gunter > > "The trouble with having an open mind is that people keep coming along > and sticking things into it." > -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) > > > On Tue, Apr 19, 2016 at 8:34 AM, William Dunlap via R-help > <r-help@r-project.org> 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. ______________________________________________ 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.