string - 从字符串加载 R 包

  显示原文与译文双语对照的内容
56 0

创建一个包含在函数中加载的包的函数。一个简短的示例( 不运行的): !

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

这不奏效有一点可以重复的代码说明我的主要问题: !

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

我知道问题是 library()require() 作为一个对象,它是一个不存在的对象 NAME 。我试着用 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

有什么方法可以做到?

时间:原作者:0个回答

72 2

使用 character.only 参数

foo <-"ggplot2"
library(foo,character.only=TRUE)
原作者:
72 4

你说你已经尝试过使用 parse()以下内容似乎适用于我:

eval(parse(text = 'library(MASS)')[1])
原作者:
...