从字符串加载R包

我想创建一个函数,其中包括加载我在函数内制作的程序包。简短示例(无法运行!):

loadMe <- function(name){
    genLib(xxx, libName = name) #make a new library with name "name"
    library(name)               #load the new library...}

这行不通!一段可重复的代码说明了我的主要问题:

library(ggplot)         #this works fineload.this <- "ggplot"library(load.this)      #I want this to load ggplot!

我知道问题在于,library()require()以一个尚不存在的对象名称作为参数。我已经试过包装我的字符串,parse()deparse()substitute()expression()quote(),等等等等,这些都返回了同样的问题:

library(load.this)# Error in library(loadss) : there is no package called 'loadss'library(deparse(load.this))# Error in library(deparse(loadss)) : 'package' must be of length 1

有没有办法做到这一点?


翻阅古今
浏览 619回答 3
3回答

万千封印

为什么要避免parse?substitute在这种情况下,您如何获得相同的结果?我正在考虑一种情况,当我不知道先验地应该加载哪个库时,尽管我可能将其作为文本字符串存储。
打开App,查看更多内容
随时随地看视频慕课网APP