访问R-package中的“examples”子目录

时间:2013-04-04 16:33:05

标签: r package subdirectory cran

我使用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 /”中的文件,我该怎么做?

1 个答案:

答案 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")

显然这并不理想,但由于您在安装的软件包中找不到该文件,我们需要采取某种解决方法......