Доступ к подкаталогу примеров в R-пакете

Я использую пакет CRAN, который содержит подкаталог «examples/», содержащий файл «ex.txt». Как получить доступ к этому файлу?

Я пытался

require("XX")
read.table(paste(.path.package("XX"), "/examples/ex.txt", sep=""), header=TRUE, sep="\t")

но тогда файл не найден. Когда я смотрю в каталог установки пакета, я действительно не вижу подкаталога «examples/». Однако, когда я запускаю R CMD check и R CMD INSTALL для источника пакета, я не получаю предупреждений о подкаталоге «examples/». Так что пакет устанавливается без проблем, но без примеров. Что мне нужно сделать, чтобы получить доступ к файлам в "examples/"?


person user1981275    schedule 04.04.2013    source источник
comment
Я думаю, вам может не повезти, если вы не сможете убедить сопровождающих пакетов переместить файлы в каталог ".../inst/examples/".   -  person Ben Bolker    schedule 04.04.2013


Ответы (1)


Сначала я неправильно понял ваш вопрос и подумал, что вы автор пакета. Проблема в том, что, как вы заметили, примеры не копируются при установке. Решением для авторов пакета было бы поместить папку в /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")

Понятно, что это не идеально, но поскольку вы не найдете этот файл в установленном пакете, нам нужно прибегнуть к какому-то обходному пути...

person Dason    schedule 04.04.2013