Как просмотреть внутренние переменные пакета R в сеансе R? - PullRequest
0 голосов
/ 08 июля 2019

Как я могу просмотреть все скрытые / внутренние переменные пакета R в сеансе R?

Под скрытыми / внутренними переменными я подразумеваю переменные, описанные в R Пакеты - Внешние данные , которые будут храниться в файле "/pkg/R/sysdata.Rda" исходного кода пакета.

Мои попытки ниже. Ничто из этого не совсем верно. Я чувствую, что что-то упустил. Должен быть простой способ сделать это, верно?

Источник загрузки

Конечно, я могу скачать исходный код пакета и

load(file.path("pkg","R","sysdata.Rda"))

Но это будет связано с работой вне моей сессии, которая не работает для меня.

Используйте завершение кода RStudio и :::

В сеансе RStudio R я мог бы сделать

> library(pkg)
> pkg:::

, где RStudio автоматически предлагает, что включать после :::. Среди предложений он показывает все внутренние переменные. Это достойный хак. Но я бы хотел кое-что почище, что не зависит от автоматических предложений RStudio.

Загрузка .rdx и .rdb файлов?

я заметил

pkg/R/sysdata.rdx
pkg/R/sysdata.rdb

в двоичных пакетах. Я думал, что смогу прочитать их, чтобы отобразить все внутренние переменные. Как открыть файл .rdb, используя R , есть ответ, основанный на lazyLoad. Но я не смог заставить это работать. И, похоже, других тоже не было.

1 Ответ

3 голосов
/ 08 июля 2019

Вы можете получить все функции (экспортированные и не экспортированные) с помощью ls и asNamespace:

head(ls(envir = asNamespace('data.table')))
# [1] "-.IDate"        ":="             "[.data.table"   "[.ITime"       
# [5] "[<-.data.table" "[<-.IDate" 

Я не уверен в вашей последней точке, но у меня есть вещь, system.fileто, что ты хочешь.IIRC все остальное, что устанавливается вместе с пакетом, должно находиться в этом месте.

head(list.files(system.file(package = 'data.table'), recursive = TRUE))
# [1] "DESCRIPTION" "help"        "html"        "INDEX"       "libs"       
# [6] "LICENSE"   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...