Hello, Thank You. It worked. The package has been submitted to CRAN. Thank You for your helpful feedback.
On Tue, Jun 22, 2021 at 10:00 PM Oliver Madsen <oliver.p.mad...@gmail.com> wrote: > The problem is solved by either > > 1) creating an environment variable within the package namespace (as you > would a function) using new.env(). This can then be used instead of the > global environment. > 2) assigning variables to the namespace of the function running the shiny > app. > > 1) is the second answer in the link provided by Jeff. > > > On Tue, 22 Jun 2021, 18:05 Jeff Newmiller, <jdnew...@dcn.davis.ca.us> > wrote: > >> Just don't. E.g. >> https://stackoverflow.com/questions/12598242/global-variables-in-packages-in-r >> >> On June 22, 2021 1:47:56 AM PDT, Siddhanta Phuyal < >> siddhantaphuyal7...@gmail.com> wrote: >> > Hello, >> > >> >A few weeks ago, I submitted a package to CRAN. The automated system >> >rejected the package showing the following note: >> > >> >Found the following assignments to the global environment: >> > File 'EuclideanSD/R/EuclideanSD.R': >> > assign("nums", x, envir = globalenv()) >> > >> >Context of the problem: >> > >> >The package has a function that takes a vector from the user. The >> >vector is >> >used by the shiny app to produce the desired output. The sever and UI >> >functions are located inside the 'inst' folder. Since they are located >> >at a >> >different location, the server function cannot directly access the >> >vector >> >received by the function from the user. Hence, the package creates a >> >global >> >variable to store the data which can also be used by the server >> >function. >> > >> >The solution I offered: >> > >> >However, before assigning the variable to a global environment, the >> >function checks whether there is a variable with the same name in the >> >global environment. If there is such a variable, then the function >> >restores >> >that variable back to its original state by using on.exit(num<-oldnum) >> >prior to exiting the function. On the contrary, if such a variable does >> >not >> >exist, then the variable assigned to the global environment is removed >> >on >> >exit. I have included the code to clarify my argument. Please see below >> >for >> >the code: >> > >> >if (exists("nums",where = 1)){ >> > oldnums <- nums >> > nums <- x >> > shiny::runApp(system.file(package="EuclideanSD","app")) >> > on.exit(nums<-oldnums) >> > >> > }else{ >> > assign("nums",x,envir = globalenv()) >> > shiny::runApp(system.file(package="EuclideanSD","app")) >> > on.exit(remove("nums",pos=1)) >> > } >> > >> >I tried to explain the same to the maintainers of CRAN by replying to >> >the >> >message that I got from the CRAN. However, there was no response. >> > >> >I have two questions that I hope to get help from this community: >> > >> >1) Is my solution reasonably okay with the requirements of the CRAN? >> >2) If the solution is not okay, what could be the better solution? >> >However, >> >the features of the package cannot be changed. For example, the data >> >has to >> >be fed through the function and not through the website. >> > >> >Thank you for your help. >> > >> >Looking forward to hearing from you. >> > >> >Best Regards, >> >Siddhanta Phuyal >> > >> > [[alternative HTML version deleted]] >> > >> >______________________________________________ >> >R-package-devel@r-project.org mailing list >> >https://stat.ethz.ch/mailman/listinfo/r-package-devel >> >> -- >> Sent from my phone. Please excuse my brevity. >> >> ______________________________________________ >> R-package-devel@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-package-devel >> > [[alternative HTML version deleted]] ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel