2015-07-15 5 views
0

Я бы хотел использовать приложение быстрой графики CSV для анализа данных, однако даже со всеми установленными пакетами приложение продолжает показывать ошибку. Сообщение об ошибке: Ошибки в файле (файл «RT»): не может открыть соединение Предупреждения в беге (timeoutMs): не может открыть файл кода ниже: UIОшибка CSV с быстрым графиком

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") 
    #  }) 

    } 
) 

Пожалуйста, помогите мне в запуске этого приложения. Спасибо!

+0

Можете ли вы упомянуть точную ошибку, которую вы получаете? Потому что я получаю следующую ошибку: 'Ошибка в read.table (file = file, header = header, sep = sep, quote = quote,: « файл »должен быть символьной строкой или соединением – Shiva

+0

Я испытываю то же самое (файл, «rt»): не удается открыть соединение Предупреждение в run (timeoutMs): не может открыть файл '': Нет такого файла или каталога –

+0

Первоначальная ошибка заключается в том, что перед загрузкой файла ваше приложение пытается отобразить график, и, поскольку нет данных (поскольку нет файла) для отображения, он выдает ошибку. Существует ошибка для того, чтобы не отображать начальную ошибку Включите следующее в 'mainPanel' в' ui.R': 'tags $ style (type =" text/css ", " .shiny-output-error {видимость: hidd ан; } ", " .shiny-output-error: before {visibility: hidden; } "),' Не могли бы вы отредактировать свой вопрос с файлом/эквивалентным образцом, который вы пытаетесь загрузить? – Shiva

ответ

2

Существует три проблемы с кодом.

  1. вы проверяете для if(is.null(input$file1)), но я верю, что вы хотите использовать input$infile

  2. выше проверки должно быть сделано до read.csv, потому что, если есть файл не выбран, вы не хотите, чтобы прочитать file

  3. при чтении файла, который хотите использовать filestr$datapath вместо filestr$name. Название только дает вам имя файл на локальном компьютере пользователя, в то время как DataPath дает фактический полный путь к файлу, который был uplodaed

Вот это упрощение вашего приложения, которое имеет дело только с выбором файл и чтение его в 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())) 
    }) 
    } 
)) 
+0

Спасибо @daattali, как я могу добавить график рассеяния и гистограмму из импортированного файла csv? –

+0

Ну, в моем фиктивном приложении 'plotdata()' хранит dataframe с содержимым csv-файл. Используйте это, чтобы построить или сделать все, что вам нужно, я просто решил вопрос о том, почему вы не смогли получить данные. –

+0

Спасибо @daattali, это приложение отлично работает сейчас! –

Смежные вопросы