如何正确使用R包中其他包的功能

时间:2011-03-10 13:11:10

标签: r namespaces package

我对此感到有点困惑。我有一个R包,它有一个小函数(不是包的mayor部分),其中principal包的psych函数被调用。如何在DESCRIPTION和NAMESPACE中正确指定它?

在DESCRIPTION中设置Depends: psych可确保每次加载包时都加载psych包。这有效,但对于我的包的这么小部分来说似乎是多余的。

设置Suggests: psych并在函数中输入require("psych")就是我现在所做的,但是如果没有安装psych则这不起作用,并且似乎是错误的做法这(写R扩展说建议主要是为了举例)。

我想我需要导入这个功能。我尝试在DESCRIPTION中设置Imports: psych,在NAMESPACE中设置importFrom(psych,"principal")。这可行,但在没有安装精神的计算机上,它在加载我的包时会出错。

1 个答案:

答案 0 :(得分:20)

您需要回答的基本问题是:“您是否希望该功能无需进一步努力即可供所有用户使用?”。如果是,则使用imports +相应的名称空间声明,如果不是,则使用建议并在require("psych")返回FALSE时打印信息性错误消息。

我不明白您的导入相关投诉:“但是在没有安装精神的计算机上,它会在加载我的包时出错”。如果你的包是依赖的,那也是如此!