On 04/01/2024 3:51 p.m., Tiago Olivoto wrote:
Hi everyone!
I which a happy new year!
I'm coding a shiny app and I would like to include an option so that the
users can assign the results to the global environment for further analysis.
I have written the following code, which checks if 'globalvarname' (the
name of object to be created in the global environment) already exists,
returning an error if so, and asking to the user change the name.
code
-----------
observeEvent(input$savetoglobalenv, {
### more code here
if (exists(input$globalvarname, envir = globalenv())) {
sendSweetAlert(
session = session,
title = "Error",
text = paste0("The object'", input$globalvarname, "' already exists
in the global environment. Please, change the name."),
type = "success"
)
} else {
assign(input$globalvarname, report, envir = globalenv())
ask_confirmation(
inputId = "myconfirmation",
type = "warning",
title = "Close the App?",
text = paste0("The object'", input$globalvarname, "' has been created
in the Global environment. To access the created object, you need first to
stop the App. Do you really want to close the app now?"),
btn_labels = c("Nope", "Yep"),
btn_colors = c("#FE642E", "#04B404")
)
}
})
---------
Thus, the object is only created when the user decides to assign such an
object to the global environment. As the object's name is checked, there is
no way of replacing some object already available in the global environment.
Of course, when running devtools::check(), a NOTE is returned
Found the following assignments to the global environment:
Arquivo 'plimanshiny/R/mod_analyze.R':
Can I ignore this safely?
Is there any suggestion to handly this without using 'assign()'
A simple alternative would be to assign it into a private environment
managed by your app, and supply a function to the user to retrieve it
from there. The user can choose where to assign the result of that
function.
So instead of:
user says to save to "myvar"
you save to myvar
user uses myvar
you would have
user says to save value
you save it privately
user runs myvar <- savedvalue()
If your app requires users to be able to save several different values,
the user could enter a name on the first line and enter it again on the
third line.
Duncan Murdoch
Duncan Murdoch
______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel