diff --git a/internals.R b/internals.R index 9e28081741782eac1376938e837596f3b2259526..f64c46fab8a264c070563ef342c402feaf350f24 100644 --- a/internals.R +++ b/internals.R @@ -47,4 +47,16 @@ tdf[grep("unknown ", tdf)] <- NA #tdf[grep("Unclassified", tdf)] <- NA return(tdf) -} \ No newline at end of file +} + +.import_from_rdata <- function(input) { + ## Happy path + ne <- new.env() ## new env to store RData content and avoid border effects + if (!is.null(input$fileRData)) + load(input$fileRData$datapath, envir = ne) + if (class(ne$data) == "phyloseq") + return(ne$data) + + ## Unhappy paths: everything else + return() +} diff --git a/server.R b/server.R index 6ffde9dab0802b918db528e0d6636be59282e757..1ffc68e129b8b05d080d653930016dcda443034a 100644 --- a/server.R +++ b/server.R @@ -85,12 +85,16 @@ shinyServer ## Rdata input if (input$dataset == "rdata") { + ## .import_from_rdata(input) ## does not work as a function for some reason + ## Happy path + ne <- new.env() ## new env to store RData content and avoid border effects if (!is.null(input$fileRData)) - load(input$fileRData$datapath) - if (exists("data") && class(data) == "phyloseq") - return(data) - ## Unhappy path + load(input$fileRData$datapath, envir = ne) + if (class(ne$data) == "phyloseq") + return(ne$data) + + ## Unhappy paths: everything else return() }