Как сохранить исходные файлы при использовании функции «установить» библиотеки R devtools

Я пытаюсь собрать пакет R (DESeq2) из ​​исходного кода, чтобы я мог его отлаживать. Я установил все необходимые зависимости и следую инструкции по созданию пакетов R. Я запускаю это на CentOS 6.6, используя R-3.4.2.

Я бегу :

library("devtools")
install("DESeq2", keep_source=TRUE)

Он устанавливает его в каталог со всеми другими моими библиотеками R. Когда я смотрю на установленную библиотеку DESeq2, в ней отсутствуют все файлы DESeq2/R/*.R и DESeq2/src/*.cpp.

ВОПРОС. Где находятся эти файлы и почему они не установлены? Это не похоже на ожидаемое поведение.


person irritable_phd_syndrome    schedule 22.02.2018    source источник
comment
Я думал, что keep.source было указанием включить исходный код в загружаемый код, а не хранить определенные файлы в /library/... Я также не уверен, как он будет работать с кодом Rcpp. Я также думаю, что вам может понадобиться посмотреть, что передается type, поскольку это зависит от ОС, а вы не сообщили нам эту информацию.   -  person IRTFM    schedule 22.02.2018
comment
Добавлена ​​запрашиваемая информация. В ?install написано: keep_source: Если «TRUE», то srcrefs будут сохранены из установленного пакета. Это полезно для отладки (особенно внутри RStudio). По умолчанию используется опция «keep.source.pkgs». Наверное, я предполагал, что «srcrefs» будет включать исходный код? Возможно, нет?   -  person irritable_phd_syndrome    schedule 22.02.2018
comment
Что вы имеете в виду под передачей type? type не является аргументом в пользу install.   -  person irritable_phd_syndrome    schedule 22.02.2018
comment
Я предполагал, что это будет передано install.packages. Возможно нет?   -  person IRTFM    schedule 23.02.2018
comment
keep_source=TRUE будет просто передать --with-keep.source в rcmd. Согласно документации, пакеты по умолчанию не устанавливается с сохранением исходного форматирования, эта опция позволяет это сделать.   -  person miken32    schedule 23.02.2018


Ответы (1)


R использует двоичный формат базы данных для установленных пакетов, чтобы упаковать объекты в формат файла, аналогичный базе данных, из соображений эффективности (отложенная загрузка). Эти файлы базы данных (*.rdb и *.rdx) хранятся в подпапке R пути установки пакета (см. ?lazyLoad).

Даже если

  • вы ищете правильное место, чтобы найти установленный пакет (используйте .libPaths() в R, чтобы найти папку установки)
  • и вы установили пакет с исходным кодом (как вы это сделали или через install.packages("a_CRAN_package", INSTALL_opts = "--with-keep.source"))

вы не найдете файлы R в папке R там.

Вы можете убедиться, что исходный код доступен, выбрав одно имя функции из пакета и напечатав его на консоли. Если вы видите исходный код (с комментариями), доступны исходники пакета (файлы R):

print(DeSeq2::any_function)

Чтобы сделать исходный код доступным для отладки и трассировки стека, вы можете установить параметр keep.source.pkgs = TRUE (см. ?options) в файле .Rprofile или через переменную среды:

сохранить.source.pkgs:

Что касается keep.source, используется только при установке пакетов. По умолчанию FALSE, если для переменной среды R_KEEP_PKG_SOURCE не задано значение yes.

Примечание. Исходный код доступен только для вновь установленных и обновленных пакетов (не для уже установленных пакетов!).

Для получения дополнительной информации см.: https://yetanothermathprogrammingconsultant.blogspot.de/2016/02/r-lazy-load-db-files.html

person R Yoda    schedule 10.05.2018