在给定包名称向量的情况下以编程方式生成对包函数的调用

时间:2017-07-03 15:10:32

标签: r

在我的工作中,我开发了导出R数据对象(.RData)的R包。这些.RData文件的名称始终相同(例如files.RData)。这些包还定义并导出一个将数据上传到我的数据库的函数,比如upload_data()。在upload_data()里面我首先使用数据(文件,包="包装名称")加载数据,然后将其推入我的数据库。

我们说我有两个软件包,package1和package2,它们存在于我的文件系统中。给定包名称的向量(c(" package1"," package2")),我将如何调用' upload_data()'编程?具体来说,在脚本内部,我将如何使用" ::"来构建一个调用。构造和计算这样的调用的表示法:package1 :: upload_data())。我试着打电话给'但是无法做对。

1 个答案:

答案 0 :(得分:0)

可以使用::表示法来构建调用的路径并评估它 - 但是直接使用get并指定你想要的包可能更容易抓住。

get("upload_data", envir = asNamespace("package1"))

将返回与使用package1::upload_data相同的函数,但更容易以编程方式处理。