【发布时间】:2014-09-19 16:50:30
【问题描述】:
我一定很困惑。环顾四周,但找不到合适的答案,感觉我做错了什么。
这是一个极简主义的例子:
我的函数test 从文件夹中导入文件并对该文件进行后续分析。我在path = "inst/extdata/input_data"指定的文件夹里有几十个压缩文件
test = structure(function(path,letter) {
file = paste0(path, "/file_",letter,".tsv.gz")
data = read.csv(file,sep="\t",header=F,quote="\"",stringsAsFactors=F)
return(mean(data$var1))
}, ex = function(){
path = "inst/extdata/input_data"
m1 = test(path,"A")
})
我正在包目录的文件夹R/中构建一个带有函数的包。
当我将工作目录设置为父包并逐行运行示例时,一切正常。但是,当我使用 R CMD check 检查包裹时,它给了我以下信息:
cannot open file 'inst/extdata/input_data/file_A.tsv.gz': No such file or directory
Error in file(file, "rt") : cannot open the connection
我认为在检查和构建包时,工作目录会自动设置为包的父目录(在我的例子中是"C:/Users/yuhu/R/Projects/ABCDpackage",但似乎不是这样。
在这种情况下,最佳做法是什么?我会避免将所有数据转换为.rda 格式并将其放在data 文件夹中,因为文件太多。有没有办法编译包并在函数示例中设置包所在的相对工作目录?这在分发包时也会很有帮助(因此它不应该是我自己的路径)
非常感谢您的帮助。
【问题讨论】: