我有一系列数据框,我想在我的包中保存为单独的.rda文件.
我可以使用,devtools::use_data(my.df1, my.df2...)但我没有每个数据框的命名对象,它们都存储在一个大的列表中.
我想要做的是为每个列表元素调用use_data并使用列表名称作为.rda文件名.但是,当我执行以下操作时,我收到一条错误消息:
> lapply(my.list, devtools::use_data, overwrite = TRUE)
Error: Can only save existing named objects
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
该use_data函数似乎很奇怪,确实需要将未加引号的名称作为指向要保存的对象的参数传递。这不利于处理列表中的对象。但这里有一个可能的解决方案walk2from purrr(尽管mapply()如果您只想使用基础 R,我们可能会用 an 编写)
library(purrr)
library(devtools)
walk2(my.list, names(my.list), function(obj, name) {
assign(name, obj)
do.call("use_data", list(as.name(name), overwrite = TRUE))
})
Run Code Online (Sandbox Code Playgroud)