2

我目前正在构建一个 R 包。

我希望提供示例数据。我知道 package.skeleton() 创建的数据目录以及如何加载数据集等。

问题是,我设计了读取文件作为输入的函数——原因是那些使用我的包的人通常会加载大型数据集。因此,我的函数逐行读取文件。

我在让我的包通过检查阶段时遇到问题,因为我不清楚如何让我的函数读取示例数据文件,而不是先加载它们,然后将结果表/数据框作为参数传递。

我希望这很清楚。

提前致谢!

编辑### 回复评论

我的函数将文件作为参数,即

example <- function(test_file){

test <- readLines(testFile)

....Do something to each line ...

}

我不清楚如何使用我的 R 文档代码将文件而不是数据框传递给我的函数。

我在文档中的测试代码如下

\examples{
library(new_package)
tester <- test(testfile=somefile)
}

这无法执行,因为看起来 R 期待一个数据结构,如:

data(somedataset)
testet <- example(somedataset)

该错误是由于 R CMD 检查过程无法定位和读取我的文件造成的。有没有一种方法可以构造我的包,以便函数的参数是文件而不是数据结构,如果是这样,我如何在文档中的示例代码中将这些文件作为参数传递。

4

2 回答 2

1

这个示例函数怎么样:

#' Example function
#' @param test_file file path
#' @examples \dontrun{
#' example(system.file('example_data.txt', package='package_name'))
#' }
example <- function(test_file) {
    test <- readLines(testFile)
    # whatever you wish to do
}

详细说明:

  • 将示例数据集从datadir (如果我是对的,它将保存要在没有自定义函数的情况下加载的数据集)到 eginst目录,这最终会将您的示例文件放在已安装包的目录中,
  • system.file在文档中引用演示文件,
  • 并指定示例\dontrun以消除由自动运行但仍显示在文档中引起的任何警告(尽管如果上述情况正常,则不需要后者恕我直言)。
于 2012-09-27T22:58:47.253 回答
0

我理解您对大数据的困境(我是一名处理同样问题的生物学家),所以我建议不要运行该示例。这将允许您通过检查,但您还应该添加一个小注释(作为注释或函数文档中的其他地方),说明为什么这些不是直接运行的示例。

\examples{
\dontrun{
# Throw in your examples here
 }
}

这应该允许您通过检查(至少解决这个问题)并使您的包可安装。

于 2012-09-27T22:57:38.987 回答