I don't think that third suggestion actually works: > x <- print( twotPermutation(c(2,3,4),c(3,6,5),plotit=F) ) [1] 0.289 NULL > x NULL
twotPermutation returns the value of invisible() which is NULL: x <- print(invisible()) x This conflicts with the documented behaviour of twotPermutation which states that it should return the p-value ("Value: The p-value for the test of the hypothesis that the mean of x1 differs from x2") and makes no mention of returning it invisibly, or printing the value when it is returned. I suggest that the function is in error and should be corrected by replacing the final two lines --------------- print(signif(pval, 3)) invisible() ------------- with simply -------------- signif(pval, 3) ------------- Relying on the default behaviour of R to print the value when it is not assigned. I will copy this suggestion to the listed maintainer (W. John Braun br...@stats.uwo.ca) "David Winsemius" <dwinsem...@comcast.net> wrote in message news:53d4d49f-f8e1-44c0-b663-8b24d8420...@comcast.net... > > 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) ) > > > x > [1] 0.1 > > 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.