[R-pkg-devel] Assigning a variable to global environment

Ben Bolker bbo|ker @end|ng |rom gm@||@com
Fri Dec 11 19:57:09 CET 2020


   I think this solution will *not* be acceptable to CRAN. (The policy 
doesn't say "don't modify the global workspace unless you're careful", 
it says "don't modify the global workspace".)  You can ask for an 
exception, but your chances of success are very low.

    It would be best to find a way to solve your problem without 
assigning to the global workspace.  Can you assign to an environment 
that is contained within your package, which all of the functions in 
your package will also have access to?

   cheers
     Ben Bolker

On 12/11/20 1:52 PM, Tiago Olivoto wrote:
> Thank Matt for your response.
> Would be an acceptable solution to check if the variable exists first and
> creating the new variable with a suffix? Please, see the following example
> 
>      var_name <-  "name"
>      var_name <- ifelse(exists(var_name),
>                           paste(var_name, "_vct", sep = ""),
>                           var_name)
> and then
> 
> assign(var_name, 1, envir = .GlobalEnv)
> 
> Cheers,
> Tiago
> 
> Em sex., 11 de dez. de 2020 às 15:20, Matt Denwood <md using sund.ku.dk> escreveu:
> 
>>
>>> On 11 Dec 2020, at 18:32, Tiago Olivoto <tiagoolivoto using gmail.com> wrote:
>>>
>>> Hi everyone,
>>> This can be a very simple question, but I really have the following
>> doubt.
>>>
>>> CRAN Policies says that 'Packages should not modify the global
>> environment
>>> (user’s workspace)'. So, may I or may I not create a function that will
>>> call internally the following code? (a simple example)
>>>
>>> assign("name", 1, envir = .GlobalEnv)
>>
>> You may not - and for good reason, as the user may have an existing
>> variable called “name” that will be destroyed by such an action.  If you
>> run "R CMD check —as-cran" on a package containing this code you will get a
>> warning (or maybe a note, I can’t remember), and the package would most
>> likely be refused if you tried to submit it to CRAN.
>>
>> Cheers,
>>
>> Matt
>>
>>
>>>
>>> Cheers
>>> Tiago
>>>
>>>        [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> R-package-devel using r-project.org mailing list
>>>
>> https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-package-devel&data=04%7C01%7Cmd%40sund.ku.dk%7C42392098d3324de389b008d89dfad39d%7Ca3927f91cda14696af898c9f1ceffa91%7C0%7C0%7C637433048371869663%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=NFTbsJDlZNQWajN%2F%2BeftuclrkJSGtTnM9kEtobn9VLs%3D&reserved=0
>>
>>
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>



More information about the R-package-devel mailing list