Ich entwickle eine App (dies ist eine abgespeckte Version), wo der Benutzer eine .csv
Datei hochladen und einige automatisierte Berechnungen durchführen kann (in diesem Fall nur ein einfaches lineares Modell zu erhalten der r.squared
Wert). Da es eine große Anzahl von .csv
Tabellenkalkulationen gibt (jede kann einen eindeutigen Namen haben), habe ich mich gefragt, ob es möglich wäre, alle r.squared
Werte in einer einzigen Übersichtstabelle (der zweiten Registerkarte) zu speichern kann dann als eine einzige .csv
Datei einmal alle Dateien durch (ich bin bequem gegangen waren mit der Aktionstaste ausgeführt werden, um diesen letzten Teil zu tunPersistente Speicherung der Datenausgabe in R glänzend
ich zwei Workflow-Optionen habe.
- Mehrere Dateien (oder ein Ordner kann sofort geladen werden)
- Jede Datei wird einzeln geladen
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)
Wahrscheinlich möchten Sie eine globale Variable http://shiny.studio.com/articles/scoping.html –