如何在数据框列表中使用devtools :: use_data?

Ben*_*Ben 6 r devtools

我有一系列数据框,我想在我的包中保存为单独的.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)

我怎样才能做到这一点?

MrF*_*ick 8

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)