R 配置文件中的自引用值
Self-referential values in an R config file
使用 config 包,我希望元素引用其他元素,
比如 path_file_a
引用 path_directory
.
config.yml 工作目录中的文件:
default:
path_directory : "data-public"
path_file_a : "{path_directory}/a.csv"
path_file_b : "{path_directory}/b.csv"
path_file_c : "{path_directory}/c.csv"
# recursive : !expr file.path(config::get("path_directory"), "c.csv")
代码:
config <- config::get()
config$path_file_a
# Returns: "{path_directory}/a.csv"
glue::glue(config$path_file_a, .envir = config)
# Returns: "data-public/a.csv"
我可以对 config$path_file_a
返回的值使用 glue::glue()
之类的东西。
但我更愿意让值已经被替换,所以 config$path_file_a
包含实际值(不是值的模板)。
如您所料,取消注释 recursive
行会创建一个无限的自引用循环。
是否有比 glue::glue(config$path_file_a, .envir = config)
更好的替代品?
我遇到了同样的问题,我已经围绕配置和胶水编写了一个包装器。
该包名为 gonfig 并已提交给 CRAN。
有了它,您将拥有:
config.yml
default:
path_directory : "data-public"
path_file_a : "{path_directory}/a.csv"
path_file_b : "{path_directory}/b.csv"
path_file_c : "{path_directory}/c.csv"
在你的 R 脚本中:
config <- gonfig::get()
config$path_file_c
#> "data-public/c.csv"
使用 config 包,我希望元素引用其他元素,
比如 path_file_a
引用 path_directory
.
config.yml 工作目录中的文件:
default:
path_directory : "data-public"
path_file_a : "{path_directory}/a.csv"
path_file_b : "{path_directory}/b.csv"
path_file_c : "{path_directory}/c.csv"
# recursive : !expr file.path(config::get("path_directory"), "c.csv")
代码:
config <- config::get()
config$path_file_a
# Returns: "{path_directory}/a.csv"
glue::glue(config$path_file_a, .envir = config)
# Returns: "data-public/a.csv"
我可以对 config$path_file_a
返回的值使用 glue::glue()
之类的东西。
但我更愿意让值已经被替换,所以 config$path_file_a
包含实际值(不是值的模板)。
如您所料,取消注释 recursive
行会创建一个无限的自引用循环。
是否有比 glue::glue(config$path_file_a, .envir = config)
更好的替代品?
我遇到了同样的问题,我已经围绕配置和胶水编写了一个包装器。 该包名为 gonfig 并已提交给 CRAN。
有了它,您将拥有:
config.yml
default:
path_directory : "data-public"
path_file_a : "{path_directory}/a.csv"
path_file_b : "{path_directory}/b.csv"
path_file_c : "{path_directory}/c.csv"
在你的 R 脚本中:
config <- gonfig::get()
config$path_file_c
#> "data-public/c.csv"