Wie kann dataTableOutput dynamisch generiert werden, indem die CSV-Dateien in einer Schleife in R shiny gelesen werden?

Ich habe eine Funktion, die "n" Datenrahmen generiert und an einem Speicherort als CSV-Dateien speichert, und die Funktion gibt den Dateinamen der gespeicherten CSVs zurück.

Ich möchte diese CSV-Dateien nehmen und mit @ lesread.csv() und dann mit renderUI und renderDataTable () @ auf der Benutzeroberfläche anzeig

Während der folgende Code keine Syntaxfehler enthält,nicht wird auf dem Bildschirm angezeigt.

Bitte schlagen Sie eine geeignete Methode vor, mit der die in einem Teil des Servers generierten Tabellen in der Ausgabe verwendet und diese Datentabellen auf der Benutzeroberfläche angezeigt werden können.

Der Code für die Funktion ist unten:

Funktio

GenerateData <- function(){
   #********************************************************************
   # some sample data (originally, my data comes from an external souce)
   #--------------------------------------------------------------------
   a <- 1:10
   b<- 21:30
   c<-41:50
   sampleDat1 <- data.frame(a,b,c)
   sampleDat2<- data.frame(c,a,b,a)
   NumOfDataFrames <- 2
   #--------------------------------------------------------------------
   FilePath <- "D:/FolDerName/"
   FullPath<-WriteStatement <- NULL
   for(i in 1:NumOfDataFrames){

      FullPath[i]<-paste0(FilePath,"sampleDat",i,".csv")
      WriteStatement[i]<-paste0("write.csv(sampleDat",i,",file = '",FullPath[i],"')")
      eval(parse(text=WriteStatement[i]))
   }
   return(FullPath)

}

The UI.r

library(shiny)
shinyUI(

   fluidPage(

      # Application title

      navbarPage("Sample Data Display",
                 tabPanel("Data",
                          sidebarLayout(
                             sidebarPanel(
                                titlePanel("Sample"),
                                numericInput("sample1",label = "Some Label",value = 20),
                                numericInput("sample2",label = "Some Other Label",value = 20)
                             ),
                             mainPanel(
                                uiOutput("result")

                             )
                          )
                 )
      )
   )
)

Der Server.R

library(shiny)

GenerateData <- function(){
   #********************************************************************
   # already mentioned above, please copy the contents to server.R
   #--------------------------------------------------------------------


}
shinyServer(function(input, output,session) {
   dataSrc <- reactive({
      paths <- GenerateData()
      return(paths)
   })
   output$result <- renderUI({
      dataTab1<-NULL
      MyFilePath <- dataSrc()
      for (i in 1:length(MyFilePath)){
         dataTab1 <- read.csv(MyFilePath[i])
         # print(dataTab1)
         renderDataTable(dataTab1)
         dataTab1<-NULL

      }

   })
}
)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage