【发布时间】:2016-02-12 02:00:52
【问题描述】:
我的目标是上传两个或多个文件,每个文件都有不同的分隔符。下面的 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')
)
)
))
【问题讨论】:
-
看起来您可能需要单独的单选按钮作为分隔符。