将字符向量转换为对象的未引用名称

时间:2018-08-13 09:48:10

标签: r object type-conversion character

如何将命名现有对象的字符向量传递给仅接受现有对象未引用名称的函数?

devtools::use_data(..., )
?use_data: ...   Unquoted names of existing objects to save.

例如,?save()提供了一个替代接口:

base::save(..., list=, ) 
?save: list   A character vector containing the names of objects to be saved.

示例:

x <- "hello"
y <- "world"
save(x, y, file="./test.rda") # works fine
save(c("x", "y"), file="./test.rda")
>> Error in save(c("x", "y"), file = "./test.rda") : Objekt ‘c("x", "y")’ nicht gefunden

我确定已经多次询问并回答了这个问题,但是我找不到解决方案。我未成功尝试使用常见的嫌疑人as.name(),noquote(),get(),eval(),parse(),alternate()等。

我最近的是

unquote(c("x", "y")

感谢您的帮助或重定向

1 个答案:

答案 0 :(得分:1)

这将是基于@Moody_Mudskipper的评论的答案

x <- "hello"
y <- "world"
obj <- c("x", "y")
do.call(save, c(lapply(obj, as.name), file="./test.rda"))

使用devtools :: use_data()的模拟