这是一个常见问题,请尽可能完整。答案是社区答案,因此,如果你认为缺少某些内容,请随时进行编辑。
我正在使用R并尝试过,some.function
但出现以下错误消息:
Error: could not find function "some.function"
这个问题经常出现。当你在R中遇到这种类型的错误时,如何解决呢?
你应该检查以下几件事:
install.packages("thePackage")
(这仅需要执行一次)require(thePackage)
或library(thePackage)
(每次启动新的R会话时都应这样做)如果不确定该函数位于哪个包中,则可以做一些事情。
help.search("some.function")
或??some.function
以获取一个信息框,该信息框可以告诉你该软件包包含在哪个软件包中。find
并且getAnywhere
还可以用于定位功能。findFn
在sos
包装中解释这个答案。RSiteSearch("some.function")
或使用rdocumentation或rseek搜索是找到函数的替代方法。有时你需要使用旧版本的R,但是运行为新版本创建的代码。届时将找不到新添加的功能(例如R 3.4.0中的hasName)。如果使用较旧的R版本并希望使用较新的功能,则可以使用软件包的反向端口使这些功能可用。你还会在backport的git repo上找到需要反向移植的功能列表。请记住,早于R3.0.0的R版本与为R3.0.0和更高版本构建的软件包不兼容。
嗨,乔里斯,我有一个简短的问题。我是R语言的新手,但我能够成功安装它。我想从命令行使用“天体”软件包中的“ cosvol”功能。与从Fedora存储库安装到我的Linux系统中的R不同,我将“天体”软件包下载到了“主目录”中的另一个目录中。每当我请求函数“ cosvol()”时,都会说“找不到函数“ cosdistCoVol”。” 我不确定如何让R知道我的导演,其中所有功能都单独下载到“天体”软件包中。感谢您的帮助。
如果该功能位于核心/基本R库之一中,则可能需要对其进行更新。就我而言,我试图在中使用该
hasName
函数utils
。但是,我使用的是3.3.1,hasName
直到3.4.0才引入。由于您不能utils
作为独立库进行更新,因此R / R Studio说我没有要更新的库。@mpag这是因为utils软件包是R发行版的组成部分。如果从字面上使用RSiteSearch(“ hasName”),则第一个条目是对backports包的引用,它将使该功能在R 3.3.1中可用。另请参见github.com/r-lib/backports。我已经为这种情况添加了一些信息,以通知
@JorisMeys很有帮助。我还想提出,将功能添加到该功能的帮助页面上的R(例如?hasName)时,应该以此为惯例。例如,既不说
https://www.rdocumentation.org/packages/utils/versions/3.4.3/topics/hasName
也不https://stat.ethz.ch/R-manual/R-devel/library/utils/html/hasName.html
是“ R 3.4.0引入”,我最终通过浏览githubblame
仓库并查看utils / R / hasName.R和base / R / match.R来弄清楚它@mpag或您可能真的打开了第一个匹配项
RSiteSearch("hasName")
并获得了相同的信息。这就是为什么我几年前在此答案中添加了答案。知道这是一个有用的技巧;-)