Ошибка в документации R при использовании roxygen2 - PullRequest
0 голосов
/ 03 мая 2018

После сборки пакета R при наборе имени любой функции пакета я получаю эту ошибку:

Error in gzfile(file, "rb") : cannot open the connection

Скриншот проблемы.

Эта ошибка, по-видимому, возникает, когда R пытается показать подсказки функции (всплывающее окно, показывающее, какие аргументы принимает функция). Странно то, что ошибка исчезает после использования функции document () devtool. Кроме того, экран справки не отображается после ввода «? Имя_функции» (которое работает после использования document ())

Пакет работает нормально даже с этой ошибкой, проблема в том, что каждый раз после сборки или даже после простой загрузки пакета после повторной инициализации R эта ошибка возвращается, вынуждая пользователя использовать document (), чтобы избавиться от него , что раздражает.

Я пытался переустановить R и даже запустить на другой системе (сначала я использовал Windows-машину, но теперь, используя Ubuntu, проблема сохраняется). Также попытался создать несколько других тестовых пакетов, чтобы увидеть, была ли ошибка характерна для этого пакета, но всегда после первого использования document () в созданном тестовом проекте эта ошибка начинает возникать.

Я много искал, и ближе всего я нашел похожую проблему для меня, был следующий пост, который, кажется, та же проблема, но не был решен:

https://community.rstudio.com/t/error-connecting-to-help-documenation/881

Ниже приведен пример того, как я пишу документ с использованием roxygen2.

//'@title title...
//'
//'@description description...
//'@param params...
//'@export
// [[Rcpp::export]]
Rcpp::DataFrame test(Rcpp::DataFrame arg1, Rcpp::DataFrame arg2) {

    //code

}

Может ли кто-нибудь пролить свет на эту проблему?

Edit:

Похоже, что проблема не возникнет с проектом, который не использует Rcpp, поэтому ошибка может быть связана с документацией Rcpp с использованием roxygen2.

Это ссылка на пакет на github, который выдает мне эту ошибку, на случай, если кто-то захочет установить его и протестировать:

https://github.com/GoldenSushi/helpeR

1 Ответ

0 голосов
/ 04 мая 2018

Вкратце, вы не выполняете правильную команду в правильном порядке.

С репо у вас все в порядке (но нужна работа).

Шаг 1: Получить репо

edd@rob:~$ mkdir /tmp/goldensushi
edd@rob:~$ cd /tmp/goldensushi/
edd@rob:/tmp/goldensushi$ git clone git@github.com:GoldenSushi/helpeR.git
Cloning into 'helpeR'...
remote: Counting objects: 186, done.
remote: Compressing objects: 100% (134/134), done.
remote: Total 186 (delta 42), reused 180 (delta 39), pack-reused 0
Receiving objects: 100% (186/186), 66.03 KiB | 1.54 MiB/s, done.
Resolving deltas: 100% (42/42), done.
edd@rob:/tmp/goldensushi$ 

Шаг 2: compileAttributes и roxygenize

Вы должны сначала запустить compileAttributes(), чтобы получить теги Roxygen из C ++ на R, а затем вызовите roxygenize для создания файлов Rd. Для этого я использую несколько скриптов; другие люди могут любить devtools. ЭТО НЕ ИМЕЕТ ЗНАЧЕНИЯ. Вы по-прежнему должен вызывать правильные базовые функции R.

edd@rob:/tmp/goldensushi$ cd helpeR/
edd@rob:/tmp/goldensushi/helpeR(master)$ compAttr.r    # script: compileAttributes
edd@rob:/tmp/goldensushi/helpeR(master)$ roxy.r        # script: roxygenize()
Loading required package: Rcpp
Warning: @export [RcppExports.R#10]: unknown tag
Warning: @export [RcppExports.R#18]: unknown tag
Warning: @export [RcppExports.R#32]: unknown tag
Warning: @useDynLib [_roxyTags.R#2]: unknown tag
Warning: @importFrom [_roxyTags.R#3]: unknown tag
Warning: @export [file_readers.R#8]: unknown tag
Warning: @export [tablemanip.R#6]: unknown tag
Warning message:
Version of roxygen2 last used with this package is 6.0.1.9000. \
       You only have version 6.0.1 
edd@rob:/tmp/goldensushi/helpeR(master)$ 

Похоже, у вас также есть некоторые проблемы с использованием вами кислорода.

Шаг 3: сборка пакета

Опять же, я использую вспомогательный скрипт, который я написал (и опубликовал в littler). ЭТО НЕ ИМЕЕТ ЗНАЧЕНИЯ. Вам нужно вызвать правильный R скрипт (ы).

edd@rob:/tmp/goldensushi/helpeR(master)$ build.r       # convenience script for R CMD build .
* checking for file ‘./DESCRIPTION’ ... OK
* preparing ‘helpeR’:
* checking DESCRIPTION meta-information ... OK
* cleaning src
* excluding invalid files
Subdirectory 'R' contains invalid file names:
  ‘_roxyTags.R’
* checking for LF line-endings in source and make files and shell scripts
* checking for empty or unneeded directories
* building ‘helpeR_1.0.tar.gz’

edd@rob:/tmp/goldensushi/helpeR(master)$

Шаг 4: Проверьте пакет

Опять же, я использую помощника, на этот раз около rcmdcheck() Габора. Вы также можете позвонить R CMD check ...

edd@rob:/tmp/goldensushi/helpeR(master)$ rcc.r helpeR_1.0.tar.gz   # convenience script for R CMD check
────────────────────────────────────────────────────────────────────────────────
─  using log directory ‘/tmp/file107a2d75f173/helpeR.Rcheck’
─  using R version 3.4.4 (2018-03-15)
─  using platform: x86_64-pc-linux-gnu (64-bit)
─  using session charset: UTF-8
✔  checking for file ‘helpeR/DESCRIPTION’
─  checking extension type ... Package
─  this is package ‘helpeR’ version ‘1.0’
✔  checking package namespace information
✔  checking package dependencies
W  checking if this is a source package
   Subdirectory ‘src’ contains:
     environment_calls.hpp table.hpp valid.hpp
   These are unlikely file names for src files.
✔  checking if there is a namespace
✔  checking for executable files
✔  checking for hidden files and directories
✔  checking for portable file names
✔  checking for sufficient/correct file permissions
─  checking whether package ‘helpeR’ can be installed ... [20s/17s] OK
✔  checking installed package size
✔  checking package directory
N  checking DESCRIPTION meta-information
   Malformed Title field: should not end in a period.
N  checking top-level files
   File
     LICENSE
   is not mentioned in the DESCRIPTION file.
✔  checking for left-over files
✔  checking index information
✔  checking package subdirectories
✔  checking R files for non-ASCII characters
✔  checking R files for syntax errors
✔  checking whether the package can be loaded
✔  checking whether the package can be loaded with stated dependencies
✔  checking whether the package can be unloaded cleanly
✔  checking whether the namespace can be loaded with stated dependencies
✔  checking whether the namespace can be unloaded cleanly
✔  checking loading without being on the library search path
✔  checking dependencies in R code
✔  checking S3 generic/method consistency
✔  checking replacement functions
✔  checking foreign function calls
N  checking R code for possible problems
   hread_table: no visible global function definition for ‘read.table’
   Undefined global functions or variables:
     read.table
   Consider adding
     importFrom("utils", "read.table")
   to your NAMESPACE file.
✔  checking Rd files
✔  checking Rd metadata
✔  checking Rd cross-references
✔  checking for missing documentation entries
✔  checking for code/documentation mismatches
W  checking Rd \usage sections
   Undocumented arguments in documentation object 'neural.arrange'
     ‘x’

   Functions with \usage entries need to have the appropriate \alias
   entries, and all their arguments documented.
   The \usage entries must correspond to syntactically valid R code.
   See chapter ‘Writing R documentation files’ in the ‘Writing R
   Extensions’ manual.
✔  checking Rd contents
✔  checking for unstated dependencies in examples
✔  checking line endings in C/C++/Fortran sources/headers
✔  checking compiled code
✔  checking examples
✔  checking PDF version of manual

   See
     ‘/tmp/file107a2d75f173/helpeR.Rcheck/00check.log’
   for details.



── 0 errors ✔ | 2 warnings ✖ | 3 notes ✖
edd@rob:/tmp/goldensushi/helpeR(master)$ 

Итак, вкратце: никаких проблем, конечно, нет с Rcpp. Вы просто не знакомы с некоторыми из этих инструментов, поэтому я предлагаю вам попытаться узнать о них больше.

Постскриптум

Вероятно, вы можете использовать эти альтернативные команды, которые не зависят от littler:

edd@rob:/tmp/goldensushi/helpeR(master)$ Rscript -e 'Rcpp::compileAttributes()'
edd@rob:/tmp/goldensushi/helpeR(master)$ Rscript -e 'roxygen2::roxygenize()'
Loading required package: Rcpp
Warning message:
Version of roxygen2 last used with this package is 6.0.1.9000.  You only have version 6.0.1 
edd@rob:/tmp/goldensushi/helpeR(master)$ R CMD build .
* checking for file ‘./DESCRIPTION’ ... OK
[...]
* building ‘helpeR_1.0.tar.gz’

edd@rob:/tmp/goldensushi/helpeR(master)$ R CMD check helpeR_1.0.tar.gz
* using log directory ‘/tmp/goldensushi/helpeR/helpeR.Rcheck’
* using R version 3.4.4 (2018-03-15)
[...]
* checking PDF version of manual ... OK
* DONE

Status: 2 WARNINGs, 3 NOTEs
See
  ‘/tmp/goldensushi/helpeR/helpeR.Rcheck/00check.log’
for details.


edd@rob:/tmp/goldensushi/helpeR(master)$ 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...