Создать виньетку пакета R, которая читается в примере файла .rda?

У меня есть вопрос, аналогичный тому, что был опубликован здесь, и я попытался настроить свои папки аналогичным образом: (Написание виньетки пакета R, которая читается в файле примера?)

Пишу виньетку для пакета на R.

Я создал файл .Rnw и поместил его в подкаталог inst/doc внутри моего пакета pV. В том же подкаталоге inst/doc я поместил пример папки, содержащий файл .rda с именем tree.rda.

Прежде чем я смогу запустить любую из функций в виньетке, я должен прочитать в файле tree.rda (это строки 13-21):

```{r}
library(pV)
library(plyr)
library(reshape2)
library(ggplot2)
library(stringr)
library(igraph)
system.file('tree.rda', 'example', package = 'pV')
load("tree.rda")
```

но получить ошибку:

* checking for file '/Users/MacOwner/Desktop/pV/DESCRIPTION' ... OK
* preparing 'pV':
* checking DESCRIPTION meta-information ... OK
* installing the package to build vignettes
* creating vignettes ... ERROR
Quitting from lines 13-21 (pV.rmd) 
Error: processing vignette 'pV.rmd' failed with diagnostics:
cannot open the connection
Execution halted
Error: Command failed (1)

Как я могу успешно прочитать файл .rda, чтобы моя следующая команда могла быть (и показать первые строки файла tree.rda):

```{r}
head(tree)
```

и чтобы я мог использовать этот объект дерева в качестве входных данных для дополнительных функций, которые требуют его в качестве входных данных в более поздних частях виньетки?


person Community    schedule 25.04.2014    source источник
comment
В общем, вы должны попытаться запустить код, который вы публикуете. Очевидно, что этот код не делает того, что, по вашему мнению, он должен делать, и это не связано с тем, что код находится в виньетке.   -  person Dason    schedule 25.04.2014


Ответы (1)


Если я понимаю ваш вопрос, вам нужно либо присвоить результат system.file, либо вложить команды. Так что либо:

file <- system.file('tree.rda', 'example', package = 'phyViz')
load(file)

or

load(system.file('tree.rda', 'example', package = 'phyViz'))

должны сделать данные доступными. Попробуйте это в командной строке и затем выполните ls(), чтобы увидеть, есть ли он там.

person Bryan Hanson    schedule 25.04.2014
comment
Его там нет :o(. Ввод ls() показывает, что его там нет. Ввод файла показывает пустую строку - person ; 26.04.2014
comment
Извините, не работаю над проектом. Похоже, у вас это получилось. R.exts содержит все подробности о том, как создать пакет, но к нему нужно постоянно возвращаться! Но вы, наверное, знаете это! - person Bryan Hanson; 26.04.2014