Hi Martin Thank you very much. That solved my problem, and the package is now working!
Best regards. Philip. Martin Morgan wrote: > Philip <phi...@sctkjeld.dk> writes: > >> Hi all. > > Hi Philip -- I think this thread > > https://stat.ethz.ch/pipermail/r-devel/2009-March/052867.html > > addresses your issue. Basically, create an environment or closure in > which you can modify variables. > > HTH, > > Martin > >> >> I'm for the first time trying to make a library in R 2.8.1 on Ubuntu >> Linux. The library is very simple, R functions just need to share a >> variable (that is defined in the R code) and maybe functions and export >> functions for the user to .GlobalEnv. This variable should only be >> directly accessible from the global workspace (without change of >> environment) via a hereto dedicated function. It only consists of R >> code. I'm not sure if I should rather ask R-help. If so, just tell me. >> >> The package source is available at >> http://www.delff.dk/~philip/bdplot/ >> the check output at >> http://www.delff.dk/~philip/bdplot.Rcheck/ >> >> The package code was checked and stopped because of lack of examples. >> Until that, everything is OK. >> >>> ### ** Examples >>> >>> ~~ simple examples of the most important functions ~~ >> Error: unexpected symbol in "~~ simple examples" >> Execution halted >> >> I would like to get the code issue solved before moving the >> documentation from the R scripts and have proceeded the to building and >> installation. These two last steps gave no warnings or errors. >> >> My problem is that I cannot change the mentioned variable (from now on >> called .FOO) that belongs to the namespace of the package. I think it is >> because .FOO variable in some locked state, maybe by default created as >> read-only. It is called .FOO because I use exportPattern("^[[:alpha:]]+") >> as NAMESPACE file. I don't import anything. >> >> I have a function (bar) that, like par does with .Pars from the graphics >> namespace, modifies the contents of a list. This function has in the >> bottom (when the function name is called without () from the R command >> line) a line >> >> <environment: namespace:"mypackage"> >> >> This is like par() has the graphics namespace mentioned, and therefore, >> as I would expect. I can via this function read the contents of the >> variable just by print(.FOO). This cannot be done from .GlobalEnv which >> is as intended. The surprise is that I cannot write to it. If I do >> >> .FOO$x <<- "value" >> (names and values are arguments to the function, like with par().), I >> get the error: >> >> cannot change value of locked binding for '.FOO' >> >> The double arrow, I use because <- does not affect the contents of .FOO >> after the function has run. I don't know how I can use assign in this >> case. I don't know a name for my package's environment. I have tried >> with my package's name in both assign() and unlockBinding(), but my >> package's name is not recognized as an environment (neither beginning >> with a dot.). I also tryed unlockBinding() in the NAMESPACE file. >> >> I don't know if this is normal, but I get >> <environment: R_GlobalEnv> >> from print(parent.frame()) and things like >> <environment: 0x8df2ad0> >> from print(environment()) >> This is surprising to me. I would expect >> <environment: bdplot> >> from environment(). >> >> How can I get to write to .FOO via bar()? >> >> >> Thank you very much >> Philip. >> >> ______________________________________________ >> R-devel@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel