[R] Evaluation of function names...

Bert Gunter gunter.berton at gene.com
Fri Jun 7 16:14:09 CEST 2013


Thank you. That answers my question.

-- Bert

On Fri, Jun 7, 2013 at 7:09 AM, Prof Brian Ripley <ripley at stats.ox.ac.uk> wrote:
> On 07/06/2013 14:49, Bert Gunter wrote:
>>
>> Folks:
>>
>> Feel free to provide me a link or reference instead of an answer.
>>
>> Preamble:
>>
>> f <- function() function(x)rnorm(x)
>> g <- f()
>> g(3)
>> ## [1] -0.4448492 -0.2379978 -0.4537394
>>
>> ## But
>> rnorm <- function()1  ## nasty nasty
>> g(3)
>> ## Error in rnorm(x) : unused argument(s) (x)
>>
>> ## of course f <- function()function(x)stats:::rnorm(x)
>> ## would fix this.
>>
>> Question 1:
>> Suppose I defined f() as at top in a package namespace and exported it.
>> Would a user see this same error defining g() and with rnorm redefined
>> as above? (Assume stats is attached as usual).  I presume so, but ...
>
>
> Not if done right.  The package should importFrom(stats, rnorm).
>
>> Question 2:
>> If the answer to Q1 is yes, (how) can this be avoided without using fully
>> qualified function names?
>>
>> Again, a quick reference to relevant docs would suffice.
>
>
> 'Writing R Extensions' says
>
> 'The namespace controls the search strategy for variables used by functions
> in the package. If not found locally, R searches the package namespace
> first, then the imports, then the base namespace and then the normal search
> path.'
>
> --
> Brian D. Ripley,                  ripley at stats.ox.ac.uk
> Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
> University of Oxford,             Tel:  +44 1865 272861 (self)
> 1 South Parks Road,                     +44 1865 272866 (PA)
> Oxford OX1 3TG, UK                Fax:  +44 1865 272595



-- 

Bert Gunter
Genentech Nonclinical Biostatistics

Internal Contact Info:
Phone: 467-7374
Website:
http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm



More information about the R-help mailing list