错误:找不到函数。。。在R
这是一个常见问题,请尽可能完整。答案是社区答案,因此,如果您认为缺少某些内容,请随意编辑 我正在使用R并尝试了一些.function,但收到以下错误消息:错误:找不到函数。。。在R,r,function,error-handling,r-faq,R,Function,Error Handling,R Faq,这是一个常见问题,请尽可能完整。答案是社区答案,因此,如果您认为缺少某些内容,请随意编辑 我正在使用R并尝试了一些.function,但收到以下错误消息: Error: could not find function "some.function" 这个问题经常出现。当您在R中遇到此类错误时,如何解决它?有几件事您应该检查: 你写的函数名正确吗?名称区分大小写 您是否安装了包含该功能的软件包安装.package(“thePackage”)(只需执行一次) 您是否将该软件包
Error: could not find function "some.function"
这个问题经常出现。当您在R中遇到此类错误时,如何解决它?有几件事您应该检查:
require(软件包)
(并检查其返回值)或library(软件包)
(应在每次启动新的R会话时执行此操作)help.search(“some.function”)
或?some.function
,以获得一个信息框,告诉您它包含在哪个软件包中find
和getAnywhere
也可用于定位函数sos
软件包中使用findFn
,如中所述RSiteSearch(“some.function”)
或使用或搜索是查找函数的替代方法有时您需要使用旧版本的R,但运行为新版本创建的代码。新添加的函数(如R3.4.0中的hasName)将找不到。如果您使用较旧的R版本,并且希望使用较新的函数,则可以使用该软件包使这些函数可用。您还可以在上找到需要进行后端口的函数列表。请记住,R3.0.0之前的R版本与为R3.0.0及更高版本构建的软件包不兼容。当计算机在我的控制下时,我通常可以解决此问题,但使用网格时更麻烦。当一个网格不是同质的时候,并不是所有的库都可以安装,我的经验是没有安装包是因为没有安装依赖项。为了解决这个问题,我检查以下内容:
.libPaths()
是一个很好的检查ldd
结果,以确保共享库在经历了相当一段时间后,其中一些步骤变得相当常规。尽管#7似乎是一个很好的起点,但它们是按照我使用频率的大致顺序列出的。另一个问题是,在存在名称空间的情况下,您试图从packagefoo运行未报告的函数 例如(我知道是人为的,但是): 因此,我们现在可以使用以下命令直接调用它:
> stats:::plot.prcomp(mod)
我使用了plot.prcomp
作为示例来说明目的。在正常使用中,不应该像这样调用S3方法。但正如我所说的,如果您要调用的函数存在(例如,它可能是一个隐藏的实用程序函数),但位于命名空间中,R将报告它无法找到该函数,除非您告诉它要在哪个命名空间中查找
将其与以下内容进行比较:
stats::plot.prcomp
上述操作失败是因为stats
使用plot.prcomp
,但它不是从stats
导出的,因为错误正确地告诉我们:
错误:“plot.prcomp”不是从“命名空间:stats”导出的对象
记录如下:
pkg::name返回命名空间pkg中导出变量名的值,而pkg:::name返回内部变量名的值
如果在检查包(R CMD check)时发生这种情况,请查看名称空间
可以通过向命名空间添加以下语句来解决此问题:
exportPattern("^[^\\\\.]")
这将导出所有不以点(“.”)开头的内容。这允许您拥有隐藏的函数,从一个点开始:
.myHiddenFunction <- function(x) cat("my hidden function")
.myHiddenFunction我出现了错误
错误:找不到函数some.function
在对我用RStudio制作的包执行R CMD检查时发生。我发现在添加
exportPattern(“.”)
对名称空间文件执行此操作。作为旁注,我最初将RStudio配置为使用ROxygen制作文档,并选择ROxygen为我编写名称空间文件的配置,这会不断删除我的编辑。因此,在我的例子中,我取消选中
exportPattern("^[^\\\\.]")
.myHiddenFunction <- function(x) cat("my hidden function")
parallelStart(mode = "<your mode here>", N, level = "<task.level>")
parallelExport("<myfun>", level = "<task.level>")
comparison.cloud(colors = c("red", "green"), max.words = 100)
wordcloud::comparison.cloud(colors = c("red", "green"), max.words = 100)