gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 17:19:43 26 4
gpt4 key购买 nike

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com