在服务器功能中跳过空inputFile

时间:2017-02-08 12:51:12

标签: r shiny

我正在尝试构建一个闪亮的应用程序,允许用户上传2-4个文件,具有四个不同的fileInput。

我正在努力跳过空文件,而不是为我的函数中的空文件收到错误消息。我已经尝试删除“if(is.null(NULL))”将其更改为“if(is.null())”对第三个和第四个文件不执行任何操作,但仍然得到相同的错误消息:< / p>

  arguments imply differing number of rows: 32, 0

这是我的代码:

UI:

                         fileInput('file1', 'Upload the data you want to test', 
                                   accept=c('text/csv', 
                                            'text/comma-separated-values,text/plain', 
                                            '.csv')),
                         fileInput('file2', 'Upload your comparison data', 
                                   accept=c('text/csv', 
                                            'text/comma-separated-values,text/plain', 
                                            '.csv')),
                         fileInput('file3', 'Upload your comparison data', 
                                   accept=c('text/csv', 
                                            'text/comma-separated-values,text/plain', 
                                            '.csv')),
                         fileInput('file4', 'Upload your comparison data', 
                                   accept=c('text/csv', 
                                            'text/comma-separated-values,text/plain', 
                                            '.csv')),

服务器:

  filedata1 <- reactive({
infile1 <- input$file1
if (is.null(infile1)){
  return(NULL)      
}
read.csv(infile1$datapath, header=F, col.names = c('V1', 'V2'))
  })


filedata2 <- reactive({
infile2 <- input$file2
if (is.null(infile2)){
  return(NULL)      
}
read.csv(infile2$datapath, header=F, col.names = c('V1', 'V2'))
})


filedata3 <- reactive({
infile3 <- input$file3
if (is.null(infile3)){
  return()      
}
read.csv(infile3$datapath, header=F, col.names = c('V1', 'V2'))
})


filedata4 <- reactive({
infile4 <- input$file4
if (is.null(infile4)){
  return()      
}
read.csv(infile4$datapath, header=F, col.names = c('V1', 'V2'))
})

这里调用所有四个文件的函数,也在服务器上:

 data <- zoo(cbind(filedata1(), filedata2(), filedata3(), filedata4()))

感谢!!!

0 个答案:

没有答案