From wl2776 at gmail.com  Fri May 25 14:46:34 2007
From: wl2776 at gmail.com (Vladimir Eremeev)
Date: Fri, 25 May 2007 05:46:34 -0700 (PDT)
Subject: [Rd] solved.
In-Reply-To: <10801823.post@talk.nabble.com>
References: <10800416.post@talk.nabble.com>
	<Pine.LNX.4.64.0705251155280.14500@gannet.stats.ox.ac.uk>
	<10801165.post@talk.nabble.com> <4656CF3C.7070809@stats.uwo.ca>
	<10801823.post@talk.nabble.com>
Message-ID: <10802257.post@talk.nabble.com>


By removing the data directory (which package.skeleton has created, and where
it has put all my variables in files with .rda extension) and adding one
more file to the R directory, containing the variable assignments.


Vladimir Eremeev wrote:
> 
> I do use this function.
> Here is the example session, run from the newly created directory, without
> .Rdata and .Rhistory files.
> 
> === begin
> R version 2.5.0 Patched (2007-05-13 r41549)
> Copyright (C) 2007 The R Foundation for Statistical Computing
> ISBN 3-900051-07-0
> 
> R is free software and comes with ABSOLUTELY NO WARRANTY.
> You are welcome to redistribute it under certain conditions.
> Type 'license()' or 'licence()' for distribution details.
> 
> R is a collaborative project with many contributors.
> Type 'contributors()' for more information and
> 'citation()' on how to cite R or R packages in publications.
> 
> Type 'demo()' for some demos, 'help()' for on-line help, or
> 'help.start()' for an HTML browser interface to help.
> Type 'q()' to quit R.
> 
>> library(ac9)
>> AB2C(matrix(rnorm(90),ncol=9),matrix(rnorm(90),ncol=9))
> Error in AB2C(matrix(rnorm(90), ncol = 9), matrix(rnorm(90), ncol = 9)) : 
>         object "ac9nw" not found
>> options(error=recover)
>> AB2C(matrix(rnorm(90),ncol=9),matrix(rnorm(90),ncol=9))
> Error in AB2C(matrix(rnorm(90), ncol = 9), matrix(rnorm(90), ncol = 9)) : 
>         object "ac9nw" not found
> 
> Enter a frame number, or 0 to exit   
> 
> 1: AB2C(matrix(rnorm(90), ncol = 9), matrix(rnorm(90), ncol = 9))
> 
> Selection: 1
> Called from: eval(expr, envir, enclos)
> Browse[1]> ls()
> [1] "a"          "b"          "model.type" "nwa"        "nwb"       
> [6] "nza"        "nzb"       
> Browse[1]> search()
>  [1] ".GlobalEnv"        "package:ac9"       "package:stats"    
>  [4] "package:graphics"  "package:grDevices" "package:utils"    
>  [7] "package:datasets"  "package:methods"   "Autoloads"        
> [10] "package:base"     
> Browse[1]> n
> 
> Enter a frame number, or 0 to exit   
> 
> 1: AB2C(matrix(rnorm(90), ncol = 9), matrix(rnorm(90), ncol = 9))
> 
> Selection: 1
> Browse[1]> n
> 
> Enter a frame number, or 0 to exit   
> 
> 1: AB2C(matrix(rnorm(90), ncol = 9), matrix(rnorm(90), ncol = 9))
> Selection: 0
> 
> 
> === Pause of the session, don't quit from R.
> 
> The function AB2C tries to work, if I use the data function.
> But this data function makes the ac9nw visible in the global environment.
> 
> === Continuing the sample session:
> 
>> data(ac9nw)
>> ls()
> [1] "ac9nw"
>> ac9nw
> [1] 9
> 
>> AB2C(matrix(rnorm(90),ncol=9),matrix(rnorm(90),ncol=9))
> Error in eval(expr, envir, enclos) : object "Pro" not found
> 
> Enter a frame number, or 0 to exit   
> 
>  1: AB2C(matrix(rnorm(90), ncol = 9), matrix(rnorm(90), ncol = 9))
>  2: NextMethod("AB2C")
>  3: AB2C.S(matrix(rnorm(90), ncol = 9), matrix(rnorm(90), ncol = 9))
>  4: lm(t(cbind(a, b)) ~ Pro + syn + unk + Y + Nh + 0, offset = c(ac9aw,
> ac9bw))
>  5: eval(mf, parent.frame())
>  6: eval(expr, envir, enclos)
>  7: model.frame(formula = t(cbind(a, b)) ~ Pro + syn + unk + Y + Nh + 0,
> offset = c(ac9a
>  8: model.frame.default(formula = t(cbind(a, b)) ~ Pro + syn + unk + Y +
> Nh + 0, offset 
>  9: eval(predvars, data, env)
> 10: eval(expr, envir, enclos)
> 
> Selection: 0
> 
> The function AB2C now sees ac9nw, and gives similar errors, related to
> other hidden variables.
> 
> 
> Duncan Murdoch-2 wrote:
>> 
>> On 5/25/2007 7:27 AM, Vladimir Eremeev wrote:
>>> Thank you for the answer.
>>> 
>>> Here is everything.
>>> 
>>> ac9wl<-c(412,440,488,510,532,555,650,676,715)
>>> ac9nw<-length(ac9wl)
>>> 
>>> AB2C <-function(a,b,model.type="S") {  
>>>   nza<-dim(a)[1]
>>>   nwa<-dim(a)[2]
>>>   nzb<-dim(b)[1]
>>>   nwb<-dim(b)[2]
>>> 
>>>   if(nza!=nzb || nwa!=ac9nw || nwb!=ac9nw) {
>>>     warning('AB2C: Dimensions of the input matrices are invalid')
>>>     return(NULL);
>>>   }
>>> 
>>>  [ further calculations, they  do not use ac9nw ]  
>>> }
>> 
>> 
>> That would work, so my guess is that you aren't using that function.  If 
>> you have a function named AB2C in your global environment, R will find 
>> it before this one, and it may not be able to see the ac9nw variable.
>> 
>> Duncan Murdoch
>> 
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/private-variables-in-package.-tf3815306.html#a10802257
Sent from the R devel mailing list archive at Nabble.com.



[Rd] solved.
Vladimir Eremeev