为什么会出现以下错误消息:
g
虽然这种S3方法很好用。例如,如果我输入> vegan::reorder.hclust
Error: 'reorder.hclust' is not an exported object from 'namespace:vegan'
,我会获得预期的帮助页面,help(reorder.hclust, package = "vegan")
会在控制台上显示该功能的源代码...
此vegan:::reorder.hclust
安装的NAMESPACE
文件也包含vegan
。
我想在另一个包中使用此功能,我需要导入它或使用S3method(reorder, hclust)
vegan::reorder.hclust
答案 0 :(得分:3)
您收到该错误是因为vegan
没有导出该功能。它可以为没有输出的东西提供帮助。使用三个冒号vegan:::reorder.hclust
显示未导出的内部函数;通常你应该避免使用它们。
但是,当加载vegan
包时,其reorder.hclust
函数将添加到reorder
的方法表中。因此,您只需要确保它已加载,然后如果hc
是hclust
对象,reorder(hc)
将调用reorder.hclust
方法。您可以将requireNamespace("vegan")
放入代码中,或从NAMESPACE文件中的vegan
导入内容。
如果有两种reorder.hclust
方法(由加载的不同包定义),那么我认为您无法轻松指定vegan
除了使用CRAN将反对的vegan:::reorder.hclust
之外的其他用户。您需要要求vegan
维护者导出他们的功能,以便您可以使用合法vegan::reorder.hclust
访问它,或将代码复制到您自己的包中,或者其他一些不方便的方法。