Я разрабатываю приложение (это урезанная версия), где пользователь может загрузить файл .csv
и выполнить некоторые автоматизированные вычисления (в этом случае просто простая линейная модель для получения значение r.squared
). Поскольку будет большое количество таблиц .csv
(каждый может иметь уникальное имя), мне было интересно, можно ли сохранить все значения r.squared
в одной сводной таблице (вторая вкладка), которая затем могут быть экспортированы в один .csv
файл, когда все файлы будут пройдены (я комфортно с помощью кнопки действия, чтобы сделать эту последнюю частьПостоянное хранилище данных в R shiny
у меня есть два варианта технологического процесса:.
- несколько файлов (или папка может быть загружена сразу)
- Каждый файл загружается индивидуально
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 –