Как генерировать dataTableOutput динамически, читая файлы .csv в цикле в R блестящий?
У меня есть функция, которая генерирует «n» фреймы данных и сохраняет его в месте как CSV-файлы, и функция возвращает имя файла сохраненных CSV-файлов.
Я хочу взять эти CSV-файлы, читать его с помощьюread.csv()
а затем отобразить его в пользовательском интерфейсе, используя renderUI и renderDataTable ()
Хотя приведенный ниже код не имеет синтаксических ошибок, ноничего такого отображается на экране.
Пожалуйста, предложите подходящий метод, с помощью которого таблицы, сгенерированные в одной части server.R, можно использовать в выходных данных и отображать эти таблицы данных в пользовательском интерфейсе.
Код для функции ниже:
функция
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)
}
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")
)
)
)
)
)
)
Сервер.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
}
})
}
)