J'essaie d'accéder à un objet (a<-get(obj1,envir=parent.environment())
) résidant dans l'environnement appelant à partir de l'environnement appelé myf
et je n'arrive pas à le faire fonctionner. Erreur que je reçois est Object obj1 not found
. J'ai aussi essayé parent.frame()
. Des idées?R shiny object scoping
library(shiny)
shinyApp(
ui = textOutput("test1"),
server = function(input, output) {
myf <- function(x) {
a <- get(obj1, envir = parent.environment())
return(paste0(x,a))
}
output$test1 <- renderText({
obj1 <- "testing"
a <- lapply(c("a","b","c"), myf)
return(paste(unlist(a), collapse = ","))
})
}
)
NOTE: Je ne veux pas créer obj1 à l'aide obj1<<-
car elle crée dans l'environnement mondial et est disponible pour toutes les sessions
Bon, je n'ai même pas remarqué que '" obj1 "' n'était pas cité. Pas étonnant! – shadowtalker
Je l'ai seulement remarqué quand j'ai corrigé le problème de parent.environment pour être l'environnement correct, et recevais toujours l'erreur, et ai pensé "mais je suis dans le bon env ..... pourquoi!" "ah .." –
Génial, merci pour l'explication détaillée 'daattali'. Je devrais en savoir plus sur l'appel des cadres - de bons liens? – Sri