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.

Reply via email to