CSV快速绘图错误

时间:2015-07-15 18:42:48

标签: csv shiny

我想使用CSV快速绘图应用程序来分析数据,但即使安装了所有软件包,应用程序仍会显示错误。错误消息是: 文件错误(文件," rt"):无法打开连接 运行警告(timeoutMs):   不能打开文件 代码如下: UI

library(shiny)
shinyUI(pageWithSidebar(
  headerPanel("CSV Quick Plot"),
  sidebarPanel(
    fileInput('infile', 'Choose file to upload',
              accept = c(
                'text/csv',
                'text/comma-separated-values',
                'text/tab-separated-values',
                'text/plain',
                '.csv',
                '.tsv'
              )
    ),
    selectInput("plotType", label = "Select Plot Type",
                c("Histogram" = "hist",
                  "Correlation" = "corr")),
    dateInput("date", "Date:"),  
    submitButton("Submit")


  ),
  mainPanel(
    h3('Output Information'),
    h4('File entered'),
    verbatimTextOutput("ofile"),
    h4('You selected plot type'),
    verbatimTextOutput("oplotType"),
    h4('You entered'),
    verbatimTextOutput("odate"),
    plotOutput('newHist')
  )
))

服务器

library(UsingR)
library(shiny)
library(Hmisc)
library(corrplot)
wd <- getwd()
setwd(wd)

shinyServer(
  function(input, output) {

    output$ofile        <- renderPrint({input$infile})
    output$oplotType    <- renderPrint({input$plotType})
    output$odate        <- renderPrint({input$date})

    plotdata <- reactive({
      filestr <- input$infile
      read.csv(filestr$name)
      if(is.null(input$file1)) 
        return(NULL)
    })

    output$newHist <- renderPlot({
      hist(plotdata())
    })

    #   Conditional plot selection is test in progress
    #     corrdf <- cor(plotdata)
    #     output$newHist <- renderPlot({
    #         corrplot(corrdf, method = "circle")
    #     })

  }
)

请帮助我运行此应用程序。谢谢!

1 个答案:

答案 0 :(得分:2)

您的代码存在三个问题。

  1. 您正在检查if(is.null(input$file1)),但我相信您要使用input$infile

  2. 上述检查应在read.csv之前完成,因为如果没有选择文件,则您不想阅读文件

  3. 在阅读您要使用filestr$datapath而非filestr$name的文件时。该名称仅为您提供用户本地计算机上文件的名称,而数据路径则提供了已升级的文件的实际完整路径

  4. 以下是您的应用的简化,仅处理选择文件并将其读入csv,展示所有这些点

    runApp(shinyApp(
      ui = fluidPage(
        fileInput('infile', 'Choose file to upload',
                  accept = c(
                    'text/csv',
                    'text/comma-separated-values',
                    'text/tab-separated-values',
                    'text/plain',
                    '.csv',
                    '.tsv'
                  )
        )
      ),
      server = function(input, output, session) {
        plotdata <- reactive({
          if (is.null(input$infile)) {
            return()
          }
          filestr <- input$infile
          read.csv(filestr$datapath)
        })
    
        observe({
          cat(str(plotdata()))
        })
      }
    ))