R: Есть ли способ перезаписать данные в установленном пакете R? - PullRequest
0 голосов
/ 11 июля 2019

Я создал пакет R (SemNetDictionaries), который содержит несколько данных, содержащих разные словарные словари. Я хотел бы предоставить пользователю возможность перезаписать эти словари, поскольку они используют их с ответами, которые не включены в базовый словарь пакета. Можно ли разрешить пользователю напрямую добавлять данные в пакет R?

  1. Пользователи уже могут создавать свои собственные отдельные словари (которые можно сохранить на своем компьютере)

  2. Я понял, как использовать инструменты ::: makeLazyLoadDB; однако это вызывает несколько предупреждений при сборке пакета для CRAN (так как это внутренняя функция), а также повреждает пакет.

# Load R package
library(SemNetDictionaries)

# Loads the "animals" dictionary in package
base <- SemNetDictionaries::load.dictionaries("animals")

# Word to add to dictionary in package
word2add <- "bluebird"

# Get data file names in package
data.files <- data(package="SemNetDictionaries")$results[,"Item"]

# Load data in package
lazyLoad(paste(system.file("data",package="SemNetDictionaries"),"Rdata",sep="/"))

# Update dictionary
.GlobalEnv[["animals.dictionary"]] <- unique(sort(c(base, word2add)))

# Remove all objects in the environment except for updated dictionary
rm(list = setdiff(ls(),data.files))

# Save data to package
tools:::makeLazyLoadDB(.GlobalEnv, paste(system.file("data",package="SemNetDictionaries"),"Rdata",sep="/"))

# Load dictionaries again (words are updated)
SemNetDictionaries::load.dictionaries("animals")

# This, however, corrupts the R package (see error below)
Error in get(data(list = dict.long, envir = environment())) : 
  lazy-load database 'C:\Users\apchrist\Documents\R\win-library\3.6\SemNetDictionaries/data/Rdata.rdb' is corrupt
In addition: Warning message:
In get(data(list = dict.long, envir = environment())) :
  internal error -3 in R_decompress1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...