[Rd] Problem with accessing internal variable in package.

Vladimir Eremeev wl2776 at gmail.com
Fri May 25 10:06:31 CEST 2007


This is my first package, and clearly, I'm missing something.

After reading again manuals about name spaces and hooks, I have defined the
function .onLoad,
which implicitly assigns all internal variables with <<-
Then I have deleted previous package directory and changed the call to
package.skeleton

package.skeleton(name="ac9",
                 list=c(ls(pattern="(AB2)"),
                       
"plot.C","read.AC9.data","EstimC","plot.AC9",".onLoad"),
                  namespace=TRUE,force=TRUE)

It has created file ac9/R/ac9-internal.R, containing the function .onLoad,
however, its body completely differs from that I have defined before.



Vladimir Eremeev wrote:
> 
> I am writing a package, which contains several functions and variables. 
> The variables are for internal use by functions. 
> Functions are ment to be callable by a user.
> However, the function cannot access these variables.
> 
> The package contains only R code, and was created using package.skeleton
> 
> package.skeleton(name="ac9",
>                  list=c(ls(pattern="(AB2)|(ac9)"),
>                         "Chl","Pro","LP","SP","syn","unk","Y","Nh",
>                         "plot.C","read.AC9.data","EstimC","plot.AC9"),
>                   namespace=TRUE,force=TRUE)
> 
> Among others, the package contains the functions EstimC, AB2C, AB2C.S, and
> AB2C.HK, and variables ac9nw, ac9wl, ac9aw, ...
> Functions use these variables for calculations, and I would like to hide
> them from users.
> 
> The file NAMESPACE contains the single line:
>   export(AB2C.HK,AB2C,AB2C.S,EstimC,plot.C,read.AC9.data,plot.AC9)
> 
> I am getting the following error:
> Error in AB2C(a, b, model.type) : object "ac9nw" not found
> 
>> traceback()
> 2: AB2C(a, b, model.type)
> 1: EstimC(i, plot.base.name = paste(plt.base.name, "S_", sep = ""), 
>        model.type = "S")
> 
>> sessionInfo()
> R version 2.5.0 Patched (2007-05-13 r41549) 
> i386-pc-mingw32 
> 
> locale:
> LC_COLLATE=Russian_Russia.1251;LC_CTYPE=Russian_Russia.1251;LC_MONETARY=Russian_Russia.1251;LC_NUMERIC=C;LC_TIME=Russian_Russia.1251
> 
> attached base packages:
> [1] "datasets"  "utils"     "stats"     "graphics"  "grDevices" "methods"  
> [7] "base"     
> 
> other attached packages:
>          ac9 xlsReadWrite       matlab         MASS 
>        "0.1"      "1.3.2"      "0.8-1"     "7.2-33" 
> 

-- 
View this message in context: http://www.nabble.com/Problem-with-accessing-internal-variable-in-package.-tf3814649.html#a10798787
Sent from the R devel mailing list archive at Nabble.com.



More information about the R-devel mailing list