如何检查输入 *rds 文件是否有效?

问题描述

我正在为一个接受 *rds 文件作为输入参数的包编写 R 函数用户旨在提供一个输入 *rds 文件,该文件将由函数读取,并进一步与下游一起工作。

我目前很困惑如何最好地检查提供的 *rds 文件 (1) 实际上是 *rds 文件和 (2) 有效的 *rds 文件

Note on *rds and readRDS()

例如,假设用户提供了一个扩展名为 *rds 的文件,但它是无效的:

$ touch foobar.rds
$ R

> foo = readRDS("foobar.rds")
Error in readRDS("foobar.rds") : error reading from connection

是的,我可以写一个 tryCatch() 如下来捕捉这些错误,例如

readInputRdsFile = function(input_rds){
    input = tryCatch(readRDS(input_rds),error = function(c) stop("The input *rds is invalid. Please fix your input file.")
    )
}
## within R
> readInputRdsFile("foobar.rds")
Error in value[[3L]](cond) : 
  The input *rds is invalid. Please fix your input file.

然而,这是一个非常通用的检查。除了“无效”之外,*rds 文件可能还有很多问题(在这种情况下,它根本不是 *rds 文件,而是文本文件)。

是否有更多的标准检查可以更准确地检测 *rds 文件的问题?任何见解表示赞赏,谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...