【发布时间】:2016-10-19 21:44:46
【问题描述】:
我正在开发一个应用程序(这是一个精简版),用户可以在其中上传.csv 文件并执行一些自动计算(在这种情况下只是一个简单的线性模型来获得r.squared 值) .由于将有大量的.csv 电子表格要经过(每个都可以有一个唯一的名称),我想知道是否可以将所有r.squared 值存储在一个汇总表中(第二个选项卡),然后可以在所有文件都完成后导出为单个 .csv 文件(我很喜欢操作按钮来完成最后一部分。
我有两个工作流程选项:
- 多个文件(或一个文件夹可以一次加载)
- 每个文件单独加载
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)
【问题讨论】:
-
你可能想要一个全局变量shiny.rstudio.com/articles/scoping.html
标签: r shiny persistent-storage