【发布时间】:2018-08-28 20:45:53
【问题描述】:
我有近 30 个不同名称的文件要上传。我正在寻找一个本地数据路径,然后可以用来上传许多文件。
我添加了一个非常简化的代码版本,所以我不会混淆人们。这是使用library(shinyFiles),特别是在用户界面中使用shinyDirButton,在服务器中使用shinyDirChoose。
这是在 R Studio 上本地运行的,但是当我将它添加到我的 shinyio 应用程序时,我无法让本地文件夹显示在我的应用程序上。
有解决办法吗?我试过fileInput,但它似乎也不起作用。
ui<-fluidPage(
mainPanel("Hydro-BID-Opt",
tabsetPanel(
tabPanel("Information required for the model",
numericInput("Res", label = h3("Total Res"),
min = 1, max = 25,
value = 3),
numericInput("Muns", label = h3("Total Users"),
min = 1, max = 150,
value = 5),
numericInput("Time", label = h3("Total Number of Months"),
min = 0, max = 60,
value = 12)
),
tabPanel("Adding the folder",
shinyDirButton("directory", "Please add your data path where the csv files are stored", "Please select a folder", FALSE)
),
tabPanel("Results",
h3("Results for Cost"),
textOutput("Table_Cost")
)
)))
server<-function(input, output, session) {
Mo <- reactive({input$Time})
R <- reactive({input$Res})
Mu <- reactive({input$Muns})
volumes <- getVolumes()
shinyDirChoose(input, 'directory', roots=volumes, session=session)
path1 <- reactive({
return(print(parseDirPath(volumes, input$directory)))
})
## ResMax
Resmaxcsv <- eventReactive(input$directory, {
datpath_two <- paste0(path1(),"/MRC.csv")
dataruw_Resmaxcsv <- read.csv(datpath_two, check.names=F, header = T)
dataruw_Resmaxcsv
})
## Cost
Costcsv <- eventReactive(input$directory, {
datpath_seven <- paste0(path1(),"/Cost.csv")
dataruw_Costcsv <- read.csv(datpath_seven, check.names=F, header = T)
dataruw_Costcsv
})
#### Running the model
Test <- reactive({
nT<-Mo()
nR<-R()
nM<-Mu()
## ResMax
resmaxcapacity<-Resmaxcsv()
SCmax_rt<-array(data = resmaxcapacity[,2] * 1e-6, dim = c(nR, nT))
## Cost
costcsv<-Costcsv()
cost<-as.matrix(costcsv[,2:(nM+1)])
costQ <- array(data = cost[1:nR, 1:nM], dim = c( nR, nM, nT))
App<-apply(costQ, MARGIN = c(1,3), mean)
TOTAL<-SCmax_rt+App
print(TOTAL)
})
output$Table_Cost<-renderPrint({Test()})
}
shinyApp(ui = ui, server = server)
【问题讨论】:
标签: shiny shiny-server