我正在開發的應用程序(這是一個精簡版),其中用戶能夠上傳.csv
文件並執行一些自動計算(在這種情況下只是一個簡單的線性模型,以獲得值爲r.squared
)。由於將有大量的.csv
電子表格通過去(每個都可以有一個唯一的名字),我不知道這是否有可能將所有r.squared
值存儲在一個單一的彙總表(第二個選項卡),其然後可以導出爲一個單一的.csv
文件一旦所有的文件已經通過了(我很舒服的操作按鈕做最後一部分數據輸出中的R有光澤的持久性存儲
我有兩個工作流程選項:
- 多個文件(或文件夾可以一次)
- 加載每個文件都單獨加載
ui.R
library(shiny)
ui <- fluidPage(
navbarPage("Menu",inverse=TRUE,fluid=TRUE,collapsible=TRUE,selected = "Data input",
tabPanel("Data input",
sidebarLayout(
sidebarPanel(
fileInput('file1', 'Choose CSV File',
accept=c('text/csv',
'text/comma-separated-values,text/plain',
'.csv')),
tags$hr(),
checkboxInput('header', 'Header', TRUE),
radioButtons('sep', 'Separator',
c(Comma=',',
Semicolon=';',
Tab='\t'),
','),
radioButtons('quote', 'Quote',
c(None='',
'Double Quote'='"',
'Single Quote'="'"),
'"')
),
mainPanel(
tableOutput('contents')
)
)),
tabPanel("Summary",fluidRow(
column(6,
tableOutput("summary"))))
))
server.R
server <- function(input, output) {
mydata<-reactive({
inFile <- input$file1
if (is.null(inFile))
return(NULL)
data<-read.csv(inFile$datapath, header=input$header, sep=input$sep,
quote=input$quote)
data
})
output$contents <- renderTable({
mydata()
})
output$summary <- renderTable({
m<-lm(mydata()[,1]~mydata()[,2])
summary(m)$r.squared
})
}
shinyApp(ui, server)
你可能需要一個全局變量http://shiny.rstudio.com/articles/scoping.html –