我最近重写了一个包以使用新的(呃)R引用类对象。我已经在NAMESPACE文件中使用export()导出了这三个类,所以据我所知应该可以工作。但是,当我测试构建包时,我在延迟加载阶段遇到错误:
** preparing package for lazy loading
Error in file(con, "rb") : invalid 'description' argument
ERROR: lazy loading failed for package ‘PACKAGE_NAME_HERE’
* removing ‘/Library/Frameworks/R.framework/Versions/3.0/Resources/library/PACKAGE_NAME_HERE’
我不确定这里的问题是什么。我不知道它是否相关,但是引用类通过将一些字段设置为访问器函数来存储tmp目录中文件的数据 - 我不知道这是什么在这里被抱怨的时候(con,“ rb“)我想这是一些联系的事情。有没有人有任何想法或建议,以确保参考课程正确出口?我的命名空间目前很简单 -
export(Main)
export(Mainseq)
export(Maintriplet)
我在roxygen2中使用@export标签导出的三个引用类。 我正在做什么(或不做)抛出延迟加载错误?
(ASIDE - 我没有编译代码 - 所有R,虽然引用类方法会调用一些未导出的内部函数,但这些函数应该是内部的,所以我认为不需要导出它们。 / p>
谢谢, 本。
编辑:
我的描述文件如下:
Package: HybRIDS
Type: Package
Title: Quick detection and dating of Recombinant Regions in DNA sequence data.
Version: 1.0
Date: 2013-03-13
Author: Ben J. Ward
Maintainer: Ben J. Ward <b.ward@uea.ac.uk>
Description: A simple R package for the quick detection and dating of Recombinant Regions in DNA sequence data.
License: GPL-2
Depends: ggplot2,grid,gridExtra,png,ape
我看不出这有什么问题 - 取决于是否正确。
编辑:
我已经删除了描述中的第一个错误,但我仍然遇到了错误。 我认为这是因为Mainseq类(嵌套在Main类中)有一些字段:
FullSequenceFile = "character",
FullSequence = function( value ) {
if( missing( value ) ){
as.character( read.dna( file = FullSequenceFile, format = "fasta", as.matrix = TRUE ) )
} else {
write.dna( value, file = FullSequenceFile, format = "fasta" )
}
},
InformativeSequenceFile = "character",
InformativeSequence = function( value ) {
if( missing( value ) ){
as.character( read.dna( file = InformativeSequenceFile, format = "fasta", as.matrix = TRUE ) )
} else {
write.dna( value, file = InformativeSequenceFile, format = "fasta" )
}
}
在初始化时,两个字符字段填充了tmpdir中临时文件的路径,当调用或编辑变量时,读取或写入包含变量数据的文件。但是,在此路径可用之前,似乎正在访问变量,因为up package build会发生以下情况:
** preparing package for lazy loading
Warning in file(con, "rb") :
cannot open file '/var/folders/kp/clkqvqn9739ffw2755zjwy74_skf_z/T//RtmpLB8ESC/FullSequenceaba52ac591f3': No such file or directory
Error in file(con, "rb") : cannot open the connection