1.6 如何从R中获得帮助
在开始写R代码之前,最重要的是要了解如何得到帮助。有多种方法可以得到帮助。首先,如果你想知道某个函数或数据集的信息,可以输入?
,后面加上函数名。如果你想查找某个函数,输入两个问号(??
),后面加上与此函数相关的关键词。对于特殊字符、关键字和多个字词的搜索需要加上单引号或双引号。例如:
?mean #打开mean函数的帮助页面
?"+" #打开加法操作的帮助页面
?"if" #打开if的帮助页面,用于分支代码
??plotting #搜索所有包含"plotting" 的主题
??"regression model" #搜索所有与regression model相关的主题
提示
#符号表示注释。这意味着R将忽略此行的其他部分。使用注释来为你的代码添加说明,这样就可以使你记起以前做过的事。
函数help
及help.search
分别等同于?
及??
,但是你必须把你的参数括在引号中。以下命令与之前的相当:
help("mean")
help("+")
help("if")
help.search("plotting")
help.search("regression model")
apropos
函数4能找到匹配其输入的变量(以及函数)。如果你能记住部分已创建的变量或要使用的函数名,apropos
就会非常好用。例如,假设你已经创建了一个变量a_vector
:
4 拉丁文,意为“一个能搜索联机手册的UNIX程序”。
a_vector <- c(1, 3, 6, 10)
你可以通过apropos
重新记起这个变量:
apropos("vector")
## [1] ".__C__vector" "a_vector" "as.data.frame.vector"
## [4] "as.vector" "as.vector.factor" "is.vector"
## [7] "vector" "Vectorize"
结果包含你刚刚创建的变量a_vector
以及所有其他包含vector
字符串的变量。在这个例子中,其他的函数都是R的内置函数。
找到包含特定字符串的变量固然是好,但你也可以把apropos
结合正则表达式来更精确地匹配。
提示
正则表达式是匹配字符串的一个跨语言的语法。本书只会稍作涉猎,但是建议你学会使用它们,因为它能改变你的生活。从http://www.regular-expressions.info/quickstart.html开始,然后看看Michael Fitzgerald的《学习正则表达式》吧。
例如,apropos
的以下简单示例试图寻找所有以z
结尾的变量,或者含有4到9之间数字的所有变量:
apropos("z$")
## [1] "alpe_d_huez" "alpe_d_huez" "force_tz" "indexTZ" "SSgompertz"
## [6] "toeplitz" "tz" "unz" "with_tz"
apropos("[4-9]")
## [1] ".__C__S4" ".__T__xmlToS4:XML" ".parseISO8601"
## [4] ".SQL92Keywords" ".TAOCP1997init" "asS4"
## [7] "assert_is_64_bit_os" "assert_is_S4" "base64"
## [10] "base64Decode" "base64Encode" "blues9"
## [13] "car90" "enc2utf8" "fixPre1.8"
## [16] "Harman74.cor" "intToUtf8" "is_64_bit_os"
## [19] "is_S4" "isS4" "seemsS4Object"
## [22] "state.x77" "to.minutes15" "to.minutes5"
## [25] "utf8ToInt" "xmlToS4"
大多数函数都能通过查找相关的范例来更好地了解它们的工作原理。你可以使用example
函数查看它们。也有一些较长的概念演示,你可以通过demo
函数查看:
example(plot)
demo() #列出所有演示
demo(Japanese)
R是模块化的,它被分成不同的包(后面将详细讨论),其中一些包含片段(vignettes),是指导如何使用这些包文件的短文档。可以使用browseVignettes
来浏览所有在你机器上的片段:
browseVignettes()
你还可以使用vignette
函数访问一个特定的片断(但如果你的记性和我一样糟糕,与其尝试记住某个包和片断的名称,还不如结合browseVignettes
和网页搜索):
vignette("Sweave", package = "utils")
帮助搜索操作符??
和browseVignettes
只会发现那些你已经安装了的包里的东西。如果你想查找“任何”包,可以使用RSiteSearch
,它会查询整个http://search.r-project.org网站的包。多个单词组成的短语必须用大括号括上:
RSiteSearch("{Bayesian regression}")
提示
学习如何自我帮助非常重要。想出一个与你工作相关的保留字,然后尝试使用
?
、??
、apropos
和RSiteSearch
搜索它吧。
互联网上有大量与R相关的资源。你可以从以下这些开始。
- R有一些邮件列表(http://www.r-project.org/mail.html),收集了多年来积累的关于语言的各种问题。最起码值得订阅通用列表R-help。
- RSeek(http://rseek.org)是一个R的网页搜索引擎,能查找出各种函数、R邮件列表归档中的讨论和博客文章。
- R-博客(http://www.r-bloggers.com)是R主要的博客社区,这是关注R社区新闻和小技巧的最佳方式。
- 编程问答网站Stack Overflow(http://www.stackoverflow.com),也是一个活跃的R社区,它提供了一个可替代的R-help邮件列表。你还可以通过回答问题得到点数和徽章!