[R] How to use a 'hidden' function directly?

Sharpie chuck at sharpsteen.net
Thu Feb 25 02:47:11 CET 2010



Dale Steele wrote:
> 
> I would like to be able to use two functions; qansari and pansari
> which are found in the
> function ansari.test.  How can I evaluate these functions
> independently?  Thanks.  --Dale
> 
> For example, when I load the function ...
> 
> qansari <- function(p, m, n) {
>                 .C(R_qansari, as.integer(length(p)), q = as.double(p),
>                   as.integer(m), as.integer(n))$q
>             }
> 
> and attempt to evaluate ...
> 
>> qansari( 0.025, 5, 5)
> Error in qansari(0.025, 5, 5) : object 'R_qansari' not found
> 

If R_qansari is the name of a compiled C subroutine you are trying to
execute, then it needs to be passed to .C as a quoted string:

  .C( "R_qansari" , as.integer(length(p)), q = as.double(p),
    as.integer(m), as.integer(n))$q

Otherwise R, as usual, is looking for a *variable* named R_qansari that it
assumes holds a string that will tell it which C routine to call.  It does
not find such a variable and gives the error message shown above.


-Charlie


Dale Steele wrote:
> 
> methods(ansari.test)
> stats:::ansari.test.default
> 
> the two functions that are part of ansari.test.default:
> 
> qansari <- function(p, m, n) {
>                 .C(R_qansari, as.integer(length(p)), q = as.double(p),
>                   as.integer(m), as.integer(n))$q
>             }
> 
>  pansari <- function(q, m, n) {
>             .C(R_pansari, as.integer(length(q)), p = as.double(q),
>                 as.integer(m), as.integer(n))$p
>         }
> 
> 

-- 
View this message in context: http://n4.nabble.com/How-to-use-a-hidden-function-directly-tp1568392p1568401.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list