我的目標是上傳兩個或更多文件,其中每個文件都有不同的分隔符。下面的ui.R和server.R代碼提供了一個在兩個文件都被讀入並具有相同分隔符時運行良好的示例。但是,如果我在file1中讀取,說作爲.csv,然後用另一個分隔符在file2中讀取,那麼一旦更改分隔符,file1就會受到影響並丟失其結構。使用不同分隔符上傳多個文件
目標是讀取file1及其預定的分隔符,然後在file2中讀取,使其對file1沒有影響。
server.R文件
options(shiny.maxRequestSize = 9*1024^2)
shinyServer(function(input, output) {
output$contents1 <- renderTable({
inFile <- input$file1
if (is.null(inFile))
return(NULL)
read.csv(inFile$datapath, header = input$header,
sep = input$sep, quote = input$quote)
})
output$contents2 <- renderTable({
inFile <- input$file2
if (is.null(inFile))
return(NULL)
read.csv(inFile$datapath, header = input$header,
sep = input$sep, quote = input$quote)
})
})
ui.R
shinyUI(fluidPage(
titlePanel("Uploading Files"),
sidebarLayout(
sidebarPanel(
fileInput('file1', 'Choose file 1 to upload',
accept = c('text/csv','text/comma-separated-values',
'text/tab-separated-values', 'text/plain',
'.csv', '.tsv')
),
fileInput('file2', 'Choose file 2 to upload',
accept = c('text/csv','text/comma-separated-values',
'text/tab-separated-values','text/plain',
'.csv','.tsv')
),
tags$hr(),
checkboxInput('header', 'Header', TRUE),
radioButtons('sep', 'Separator',
c(Comma=',',Semicolon=';',
Tab='\t',Pipe='|'),
','),
radioButtons('quote', 'Quote',
c(None='','Double Quote'='"',
'Single Quote'="'"),
'"'),
tags$hr()
),
mainPanel(
tableOutput('contents1'),
tableOutput('contents2')
)
)
))
看起來你可能需要單獨的單選按鈕作爲分隔符。 – GK89