R 包 : writing internal data, 但不是一次全部

标签 r devtools r-package

我正在使用 usethis 处理 R 包/devtools .这个包有一些我想保留在内部的对象,只是为了保持困惑。我使用的结构是根据来源在不同文件中创建对象,所有这些都在我的 data-raw 中。文件夹。例如,文件 make_laus_codes.R准备两个来自劳工统计局的查找代码数据框(一个内部,称为 laus_codes)和文件 make_decennial_tables.R准备来自十年一次的人口普查的查找代码(包括内部, decennial_nums )。

如果我调用 usethis::use_data(data_name, internal = TRUE) , 如果 sysdata.rda,我会收到错误消息文件已经创建,我没有选择覆盖它;如果我选择覆盖,它会覆盖整个内容,而不是我所期望的,即将第二个对象附加到 sysdata.rda .

接受的答案 Store multiple objects in sysdata.rda: R-package development说要打电话usethis::use_data(laus_codes, decennial_nums, internal = TRUE) ,但是那里的评论提出了一个问题,如果这些对象不是同时创建的,那会怎样,而这正是我想要的地方。

我的结构的简化版本如下:

数据原始/make_laus_codes.R:

laus_codes <- data.frame(
  area = c("Connecticut", "Fairfield County", "Hartford County"),
  code = c("ST0900000000000", "CN0900100000000", "CN0900300000000")
)

数据原始/make_decennial_tables.R:
decennial_nums <- c("H002", "H003", "H004", "H005", "H006")

原始数据/make_internal_data.R:
source("./make_laus_codes.R")
source("./make_decennial_tables.R")

usethis::use_data(laus_codes, decennial_nums, internal = TRUE)

这有效,但感觉很尴尬,就像我错过了这样做的预期方法。 usethis 是否有更好、更合适和/或预期的方法来做到这一点? ?以这种方式获取其他文件感觉容易受到错误和健忘的影响。

最佳答案

虽然此解决方案不使用 usethis ,我相信它可以简洁地解决您的问题:

# Let's say you've saved this sysdata in the past
laus_codes <- data.frame(
    area = c("Connecticut", "Fairfield County", "Hartford County"),
    code = c("ST0900000000000", "CN0900100000000", "CN0900300000000")
)
usethis::use_data(laus_codes, internal = TRUE)

# Updating sysdata with objects you've created just now
decennial_nums <- c("H002", "H003", "H004", "H005", "H006")
sysdata_filenames <- load("R/sysdata.rda")
save(list = c(sysdata_filenames, "decennial_nums"), file = "R/sysdata.rda")

关于R 包 : writing internal data, 但不是一次全部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51384397/

相关文章:

r - Bioconductor 包未在包的描述部分使用 biocViews 规范安装

r - 在构建包时导入除一个包外的所有功能

r - 如何根据 r 中元素的第一位保留行?

r - 从github存储库安装开发版本R包时如何指定lib目录

r - devtools::load_all() "cannot find function x"当函数 x 是加载包的一部分时

r - Appveyor 问题 - 无法安装 R 包 stringi

r - 在 Linux Mint 18 上安装 R 包时出错

javascript - R DT :datatable remove . 无页脚边框底部

r - R 中是否有一个函数同时具有 bind_rows() 和 bind_cols()?

r - 根据 dplyr 中的正则表达式匹配从长到宽的突变