r语言lm函数找不到对象_错误:在R中找不到函数....

在存在NAMESPACE的情况下,另一个问题是你试图从包foo运行一个未导出的函数。

例如(人为,我知道,但是):> mod  plot.prcomp(mod)Error: could not find function "plot.prcomp"

首先,你不应该直接调用S3方法,但假设plot.prcomp在包foo中实际上是一些有用的内部函数。如果您知道自己在做什么,要调用此类函数需要使用:::。您还需要知道找到该函数的命名空间。使用getAnywhere()我们发现该函数在包统计中:> getAnywhere(plot.prcomp)A single object matching ‘plot.prcomp’ was found

It was found in the following places

registered S3 method for plot from namespace stats

namespace:stats

with valuefunction (x, main = deparse(substitute(x)), ...) screeplot.default(x, main = main, ...)

所以我们现在可以直接调用它:> stats:::plot.prcomp(mod)

我plot.prcomp只是用一个例子来说明目的。在正常使用中,您不应该像这样调用S3方法。但正如我所说,如果您要调用的函数存在(例如它可能是隐藏的实用程序函数),但是在a中namespace,R将报告它无法找到该函数,除非您告诉它要查找哪个命名空间。

将此与以下内容进行比较: stats::plot.prcomp 上述操作失败,因为在stats使用时plot.prcomp,它不会导出,stats因为错误正确地告诉我们:错误:'plot.prcomp'不是'namespace:stats'中的导出对象

这记录如下:pkg :: name返回命名空间pkg中导出的变量名的值,而pkg ::: name返回内部变量名的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值