【问题标题】:Shiny error: 'file' must be a character string or connection闪亮的错误:“文件”必须是字符串或连接
【发布时间】:2014-08-30 03:22:38
【问题描述】:

问题 #1: 我的 ui.R 代码:

fileInput('file1', h5('Choose input file: (Use only tab delimited text files)'),
              accept=c('text', 'text-separated-values'))

和server.R代码

inFile <- input$file1
dat<-read.table(inFile$datapath, header=TRUE, sep="\t")

当我启动闪亮时,我得到Error: 'file' must be a character string or connection。但是上传文件后,错误消失了。我想知道可能是什么问题?我会很感激任何指点!

问题 #2: 当闪亮运行时,如何在 R 控制台中抑制错误消息?

提前致谢

【问题讨论】:

  • 请提供一个可重现的最小示例。

标签: r shiny


【解决方案1】:

您应该在反应函数中读取您的文件。例如在 renderTable 中。

然后你需要添加

if(is.null(input$file1))     return(NULL) 

作为反应函数中的第一件事。

错误是因为您正在尝试读取路径为 NULL 的文件,该路径是文件上传之前 input$file1 的值。

更新:闪亮现在有一个更干净地处理这个的函数。您可以改为在渲染函数的开头添加req(input$file1)

【讨论】:

  • 是的,您的建议解决了问题,非常感谢
  • 是否有可能让这个错误返回一条消息,比如No data has been uploaded.
【解决方案2】:

然后你需要添加

validate(
  need(input$file1 != "", "No data has been uploaded")
)

此链接对您有用 https://shiny.rstudio.com/articles/validation.html

【讨论】:

    猜你喜欢
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 2022-07-14
    • 2018-04-24
    • 1970-01-01
    • 2019-05-20
    相关资源
    最近更新 更多