我使用CRAN包,其中包含一个包含文件“ex.txt”的子目录“examples /”。如何访问此文件?
我试过
require("XX")
read.table(paste(.path.package("XX"), "/examples/ex.txt", sep=""), header=TRUE, sep="\t")
但是找不到该文件。当我查看包的安装目录时,我确实看不到“examples /”子目录。但是,当我在包源上运行R CMD检查和R CMD INSTALL时,我没有收到有关“examples /”子目录的警告。所以包安装没有问题,但省略了示例。要访问“examples /”中的文件,我该怎么做?
答案 0 :(得分:3)
起初我误解了你的问题并认为你是包裹作者。问题是,您注意到安装时不会复制示例。解决方案是让包作者将文件夹放在/ inst / examples而不是/ examples中。由于您无法控制,我们可以通过下载源然后再使用它来创建变通方法。
# Downloads the source code for a package
# Extracts it to a temporary directory
downloadAndExtract <- function(package, tdir = tempdir()){
down <- download.packages(package, destdir = tdir)
targz <- down[,2]
untar(targz, exdir = tdir)
file.path(tdir, package)
}
path <- downloadAndExtract("XX")
filepath <- file.path(path, "examples", "ex.txt")
dat <- read.table(filepath, header = TRUE, sep = "\t")
显然这并不理想,但由于您在安装的软件包中找不到该文件,我们需要采取某种解决方法......