>>>>> "PE" == Peter Ehlers <ehl...@ucalgary.ca> >>>>> on Thu, 24 Feb 2011 07:07:29 -0800 writes:
PE> On 2011-02-24 06:32, David Winsemius wrote: >> >> On Feb 24, 2011, at 7:22 AM, Peter Ehlers wrote: >> >>> On 2011-02-24 03:26, Duarte Viana wrote: >>>> Hello all, >>>> >>>> This shouldn't be difficult, but I am not able to extract a >>>> printed value from a function and assign it to an object. >>>> >>>> In my case, >>>> >>>>> library(DAAG) >>>>> twotPermutation(c(2,3,4),c(3,6,5),plotit=F) >>>> [1] 0.298 >>>> >>>> I would like to assign this result to an object. >> >> A third suggestion which has virtues of simplicity and keeping >> the result "numeric": >> >> x<- print( twotPermutation(c(2,3,4),c(3,6,5),plotit=F) ) PE> Does that work? Not for me. >> >> > x >> [1] 0.1 PE> This may be some 'other' x. DAAG's twotPermutation() has an PE> explicit PE> print(signif(pval, 3)) PE> as its penultimate statement, followed by PE> invisible() PE> I don't know what, if any, advantage this code has over simply PE> returning PE> invisible(signif(pval, 3)) Indeed! Your proposition is definitely better than the current code. Even better would be to separate computation and printing completely, and that would even involve the rounding step, i.e. a "decent" twotPermutation() function would return an interesting object of class, say "twotPerm" (with the unrounded 'pval') which has its simple print.twotPerm <- function(x, ...) { ... } method. Martin PE> Peter Ehlers >> > x<- print(invisible (0.2)) >> [1] 0.2 >> > x >> [1] 0.2 >> >> -- >> >> >>> >>> Two suggestions: >>> 1. >>> Modify the code for twotPermutation by removing the >>> invisible() at the end. >>> >>> 2. >>> Use capture.output to capture the result and then convert to >>> numeric: >>> >>> pvstring<- capture.output( twotPermutation( c(2,3,4), >>> c(3,6,5), plotit=FALSE) )) >>> >>> Now you can use strsplit or substr to extract the numeric >>> part: >>> >>> pv<- as.numeric(strsplit(pvstring, " ")[[1]][2]) >>> >>> or >>> >>> pv<- as.numeric( substr(pvstring, nchar(pvstring) - 5, >>> nchar(pvstring))) >>> >>> Peter Ehlers >>> >>>> >>>> Thanks, >>>> >>>> Duarte ______________________________________________ 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.