在寻求他人帮助之前,通常建议您尝试自助。R 包含用于访问文档和搜索帮助的广泛功能。还有专门的搜索引擎用于访问互联网上的 R 信息,而通用互联网搜索引擎也可能很有用(请参阅下文)。
help()
和 ?
R 中的 help()
函数和 ?
帮助运算符可用于访问 R 函数、数据集和其他对象的文档页面,包括标准 R 分发中的包以及贡献的包。例如,要访问标准 lm
(线性模型)函数的文档,请输入命令 help(lm)
或 help("lm")
,或 ?lm
或 ?"lm"
(即,引号是可选的)。
要访问未当前加载的包中的函数的帮助,请另外指定包的名称:例如,要获取 MASS 包中的 rlm()
(稳健线性模型)函数的文档,请使用 help(rlm, package="MASS")
。
R 中的标准名称由大写和小写字母、数字 (0-9
)、下划线 (_
) 和句点 (.
) 组成,并且必须以字母或句点开头。要获取具有非标准名称(例如帮助运算符 ?
)的对象的帮助,必须引用名称:例如,help('?')
或 ?"?"
。
您还可以使用 help()
函数来访问库中包的信息,例如 help(package="MASS")
,它会显示包的可用帮助页面的索引以及一些其他信息。
函数的帮助页面通常包含一个部分,其中包含可执行示例,说明函数的工作原理。您可以通过 example()
命令在当前 R 会话中执行这些示例:例如,example(lm)
。
browseVignettes()
、vignette()
和 demo()
许多软件包包含小插图,这些小插图是说明性文档,旨在说明和解释软件包中的功能。您可以通过访问软件包的帮助页面或通过 browseVignettes()
函数来发现小插图:命令 browseVignettes()
在您的浏览器中打开您安装的所有软件包中的小插图列表,而 browseVignettes(package=package-name)
(例如,browseVignettes(package="survival")
)显示特定软件包的小插图(如果有)。vignette()
的用法类似,但以文本形式显示小插图列表。
您还可以使用 vignette("vignette-name")
命令来查看小插图(如果小插图名称不是唯一的,则可以指定小插图所在的软件包的名称):例如,vignette("timedep")
或 vignette("timedep", package="survival")
(在这种情况下,它们是等效的)。
如果希望在安装和/或使用软件包之前查看软件包的小插图,还可以从软件包的 CRAN 页面(例如,survival)访问小插图。
软件包还可能包含扩展的代码演示(“演示”)。命令 demo()
列出库中所有软件包的所有演示,而 demo(package="package-name")
(例如,demo(package="stats")
)列出特定软件包中的演示。要运行演示,请使用引用的演示名称调用 demo()
函数(例如,demo("nlm")
),如果演示的名称不是唯一的,则指定软件包的名称(例如,demo("nlm", package="stats")
,在这种情况下,无需明确给出软件包名称)。
help()
函数和 ?
运算符仅在您已知道要使用的函数的名称时才有用。标准 R 发行版中还提供了用于发现函数和其他对象的工具。以下函数会逐步扩大搜索范围。使用帮助系统获取这些函数的完整文档:例如,?apropos
。
apropos()
apropos()
函数搜索对象,包括在当前 R 会话中直接可访问的函数,这些函数的名称包含指定的字符字符串。这可以是文字字符串或用于模式匹配的正则表达式(请参阅 ?"regular expression"
)。默认情况下,apropos()
的字符串匹配不区分大小写。例如,apropos("^glm")
返回所有可访问对象(不区分大小写)的名称,这些对象以字符 "glm"
开头。
help.search()
和 ??
help.search()
函数扫描库中已安装包的文档。help.search()
的(第一个)参数是字符串或正则表达式。例如,help.search("^glm")
搜索帮助页面、小插图和代码演示,这些演示具有以字符 "glm"
开头的帮助“别名”、“概念”或标题(不区分大小写)。??
操作符是 help.search()
的同义词:例如,??"^glm"
。
RSiteSearch()
RSiteSearch()
使用 互联网搜索引擎(另请参见下文)在所有 CRAN 包的功能帮助页面和小插图中以及 CRAN 任务视图(下文中有描述)中搜索信息。与 apropos()
和 help.search()
函数不同,RSiteSearch()
需要活动互联网连接,并且不使用正则表达式。大括号可用于指定多单词术语;否则,将包括单个单词的匹配项。例如,RSiteSearch("{generalized linear model}")
返回有关 R 函数、小插图和 CRAN 任务视图的信息,这些信息与术语 "generalized linear model"
相关,而不匹配单个单词 "generalized"
、"linear"
或 "model"
。
sos 包中的 findfn()
和 ???
(不是标准 R 分发的一部分,但可在 CRAN 上获得)提供了 RSiteSearch()
的替代接口。
help.start()
help.start()
在默认浏览器中启动并显示 R 在线文档的超文本版本,该版本提供指向本地安装的 R 手册版本、当前已安装包列表和其他文档资源的链接。
有一些专门用于 R 搜索的互联网搜索网站,包括 search.r-project.org(这是 RSiteSearch
使用的网站)和 Rseek.org。
还可以使用通用搜索网站,例如 Google,通过“R”或 R 包的名称(或两者)限定搜索。将错误消息粘贴到搜索引擎中以了解其他人是否解决了您遇到的问题,这可能特别有用。
CRAN 任务视图是总结 CRAN 中特定应用领域 R 资源的文档,帮助您浏览数千个 CRAN 包的迷宫。可用任务视图列表可以在 CRAN 上找到。
有三个主要的常见问题解答列表,定期更新以反映 R 用户经常提出的问题。有一个 R 主常见问题解答、一个 Windows 特定的 R 常见问题解答 和一个 Mac OS (OS X) 特定的 R 常见问题解答。
如果您发现自己无法回答问题或解决问题,您可以向他人寻求帮助,无论是在本地(如果您认识了解 R 的人)还是在互联网上。为了有效地提问,清楚地表述问题会有所帮助,如果您正在尝试解决问题,还可以包含一个小的、独立的、可重现的问题示例,以便其他人可以执行。有关如何提问的信息,请参阅,例如,R 邮件列表 发布指南 以及 Stack Overflow 上关于 如何为 R 创建可重现示例 的文档。
Stack Overflow 是一个组织良好且格式化的网站,用于帮助和讨论编程。它具有出色的可搜索性。主题已标记,并且 “r” 是该网站上非常流行的标签,截至 2016 年夏季,有近 150,000 个问题。要直接访问与 R 相关的主题,请访问 http://stackoverflow.com/questions/tagged/r。对于网站组织的价值和对 R 用户非常有用的信息的示例,请参阅 “如何制作一个出色的 R 可重现示例?”,如上所述。
R 项目维护了许多基于订阅的 电子邮件列表,用于提出和回答有关 R 的问题,包括通用 R-help 电子邮件列表、用于 R 代码开发的 R-devel 列表以及用于 CRAN 包开发人员的 R-package-devel 列表;用于宣布 R 和 R 包 的列表;以及各种更专业的列表。在这些列表中的一个列表上提出问题之前,请阅读 R 邮件列表说明 和 发布指南。