我正在使用 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/