“文件”必须是字符串或连接

时间:2018-12-04 11:55:14

标签: r shiny

我正在尝试创建一个闪亮的应用程序,该应用程序可以上载表格,运行函数并显示图形和表格。上传文件工作正常,但是我无法运行该功能并输出图形和表格(我们现在仅关注表格)。出现错误:

Warning: Error in read.table: 'file' must be a character string or connection

我已经在R中单独运行了该功能,并且可以在所需的输出下正常工作。我尝试了不同的读取函数和不同的分隔符/分隔符,并在反应性renderPlot函数中读取了该函数(如上一篇文章here中所述)。以下是我正在处理的代码的一个片段:

ui.R:

fileInput("file1", 
                  "Load Input File", 
                  accept = c("text/csv", "text/comma-separated-values,text/plain",".csv")
        )

server.R:

execute = observeEvent(input$runButton, {

    output$plot1 = renderPlot({
        inFile = input$file1
        if (is.null(inFile)) {
            print(NULL)
        }
        podr_fun_graphs(inFile$datapath)
    })

}

podr_graphs函数:

podr_fun_graphs <- function(p) {

    df1 <- read.delim(p, sep = "\t")

    ... # From here there is some data cleaning and manipulation of df1

}

类似于此代码的代码在几周前已经生效,我做了一些小的更改,然后就中断了。希望能帮助您解决此问题。

谢谢

1 个答案:

答案 0 :(得分:0)

问题出在您的if语句中。您已经写了print(NULL)。但这应该是:

if (is.null(inFile)) {
     return(NULL)
   }

如果您未指定podr_fun_graphs(inFile$datapath),R将继续执行return