0
votes

I am trying to print a message in the R shiny app right after the File import section in order to make sure every time we imported the file as expected.

Does anyone know how to realize it without using the shinyDirChoose which is slow and not the common way to load data.

server.r

## SERVER.R

#Initialization
library(datasets)
save(iris,file="iris.Rdata")
save(mtcars,file="m.Rdata")

shinyServer(function(input, output) {
  infile <- reactive({
    infile <- input$datafile
    if (is.null(infile)) {
      # User has not uploaded a file yet
      return(NULL)
    }
    objectsLoaded <- load(input$datafile$name) 
    # the above returns a char vector with names of objects loaded
    df <- eval(parse(text=objectsLoaded[1])) 
    # the above finds the first object and returns it
    return(df)
  })

  myData <- reactive({
    df<-infile()
    if (is.null(df)) return(NULL)
    return(df)
  })
  output$value1 <- renderPrint({
    names(iris)
  })
  output$value2 <- renderPrint({
    names(myData())
  })
  load("iris.Rdata")   ## data loaded for testing 
})

ui.r

## UI.R
shinyUI(fluidPage(
  fileInput("datafile", label = h3("File input")),
  fluidRow(column(4, verbatimTextOutput("value1"))),
  fluidRow(column(4, verbatimTextOutput("value2")))
))

Here is my expected output:

enter image description here

Does the message printed have to be the file path? This might help: stackoverflow.com/questions/57591651/…Paladinic
@Paladinic, yes, it would be great to have the full path. I checked this post before, but since running two slow and not the general way to work with file input.Elif Y