[R] extract printed value from a function

Peter Ehlers ehlers at ucalgary.ca
Thu Feb 24 13:22:34 CET 2011


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.

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 at 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.



More information about the R-help mailing list