有光泽验证read.csv

时间:2016-05-23 14:11:53

标签: r shiny

我正在尝试使用闪亮的验证功能来捕获读取错误并在读取上传的csv文件时显示自定义的错误消息,而不是让闪亮的转发默认的read.csv错误消息。 这是简单的代码

validate(need(try(sd <- read.csv(file = sdFile[1], stringsAsFactors = FALSE)), "Error reading the file"))

当csv文件中没有格式问题时,代码正常工作。但是当csv文件出现问题时,代码仍然会返回默认错误消息(红色字体),例如,错误:未选择未定义的列,但不是自定义消息。这里有问题吗?谢谢!

1 个答案:

答案 0 :(得分:3)

如果我这样做,我认为它实际上是打印出来的:

library(shiny)
validate(need(try(sd <- read.csv(file = "mtcars1.csv", 
                                 stringsAsFactors = FALSE)), 
                                 Error reading the file !!!"))

得到以下特性:

Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") :
  cannot open file 'mtcars1.csv': No such file or directory
Error: Error reading the file !!!

我明白了 - 请注意你的消息是在最后一行。

您可以使用supressWarnings来抑制警告:

library(shiny)
suppressWarnings(
+ validate(need(try(sd <- read.csv(file = "mtcars1.csv", 
                          stringsAsFactors = FALSE)),
                          "Error reading the file !!!!")))

得到以下特性:

Error in file(file, "rt") : cannot open the connection
Error: Error reading the file !!!!

或者您可以使用此信息(使用tryCatch代替try)来阻止除您的信息以外的所有内容:

library(shiny)
suppressWarnings(
validate(need(tryCatch(sd <- read.csv(file = "mtcars1.csv", 
                             stringsAsFactors = FALSE),      error=function (e){}), 
                             "Error reading the file !!!!")))

产生

 Error: Error reading the file !!!