R语言数据实战 | 获取R帮助文档
在R中求助,最直接的入口就是RStudio右下角的Help,如图1所示。
图1 RStudio帮助文档界面
前文已经介绍了如何阅读帮助文档,即从描述(description)、例子(example)入手更直观和容易理解。除此之外,还有两个看例子的方法。
如果想看某个函数的使用样例,可以尝试使用demo()函数,它里面也包含一些函数示范小案例,输入demo()查看已经加载进内存的包里有例子的函数列表,输入demo(“function_name”)就可以执行某个具体函数的例子了。
如果想看某些统计方法及数据操作的样例,Quick-R网站
(http://www.statmethods.net/index.html)
图2 Qucik-R网站主页
如果使用帮助文档不能很好地解决疑问,那么搜索引擎将是接下来的不二之选。以谷歌为例,它的搜索能力强大,定位精准,不仅可以完美捕捉R社区里的相关解答,还会搜寻出其他各类形式、各种来源的辅助学习材料,让我们有机会深入了解问题的来龙去脉,而不仅仅是获得一个答案。下面就以两个最常见的情景为例,来看看遇到“疑难杂症”时如何使用谷歌进行搜索。
背景:read.csv()是一个可以用来读入csv格式数据的函数,它的基本用法是read.csv(file, header = TRUE),其中参数file用来输入要读入的文件名,header用来告诉电脑是否把读入文件的第一行识别为变量名,而不是数据。
问题:比如,你想读入一张存有“全国各省份与东西部地区对应数据”的表格,于是开始使用read.csv(),结果却出现了这样的错误(见图3)。
图3 read.csv()运行错误示例
面对这样的错误,不妨直接求助谷歌。首先,把这个错误提示粘在搜索框内,前面加一个R,很多时候,这样就会出来还不错的搜索结果(见图4)。
图4 错误提示全文谷歌搜索结果
只看前几条返回结果,就可以知道出现错误的原因大概与中英文的编码有关。事实上,如果点开第一条链接,里面就有中英文编码的知识以及类似问题的解决办法,那就是:改变整个文件的编码格式,即在read.csv()函数中,将参数fileEncoding设置为能够读取汉语的编码方式,比如“GBK”就行了,再一试,完美解决(见图5)。
图5 read.csv()运行正确示例
当然,如果提取出该错误信息的英文关键词,也可以同样搜索到相关档案,(见图6)。
图6 关键词谷歌搜索结果
总的来说,在搜索结果中,排名靠前的网站往往都是前面介绍过的R社区,但又不局限于这些,我们可以一一翻看这些不同介绍来了解问题的全貌。
【友情提示】
这里另附一则搜索小技巧:在使用搜索引擎时能用英文查询就尽量用英文查,毕竟很多领域,英文资料远比中文的要丰富得多。这里再用前面“探索性数据分析”的例子让大家简单感受一下中英文搜索的区别,分别输入“探索性数据分析”和“Exploratory Data Analysis” 会得到如图7和图8的搜索结果。
图7 中文谷歌搜索结果
图8 英文谷歌搜索结果
从数量上比,中文大概返回200多万条记录,而英文则返回了1200多万条记录;从质量上看,中文返回结果的前几页大多都是零散的对相关主题介绍性文章,甚至是书籍链接,做了解用可以,但想深入学习恐怕就力不从心了,而英文返回的资料则丰富得多,有很多课程链接,甚至前几个网页点进去都是可以系统学习这个主题的ebook,比如图9所展示的ebook示意图。
图9 ebook示意图
除了遇到bug时可以求助谷歌,当你想要寻找新功能、实现新方法却不知从何下手时,它也是一个绝好的帮手。举例来说,如果你手头有一个含大量数据的csv,但普通的read.scv()函数太慢,影响效率,那么通过谷歌搜索看能否有办法提高读入数据的速度呢(见图10)?
图10 谷歌搜索结果
从图10可以看出,排名靠前的搜索结果均来自于R-bloggers,Stack Overflow,CRAN官网这类较权威的地方,提供了很多提高效率的方法。不妨打开其中的Stack Overflow网站一探究竟。从图11可以看到,“热心网友”已经给出了全面专业的解答,不仅有R包,还有对应函数。
图11 Stack Overflow网站解答
R语言是一个具有强大社区支持的软件,如果不能够在搜索引擎中找到满意的答案,不妨把你的问题贴到社区中,与众多R语言爱好者共同探索。下面具体介绍三大社区网站COS中文论坛、StackOverflow和GitHub。
这是统计之都(Capital of Statistics, COS)旗下的论坛网站(d.cosx.org),它同其主站(cosx.org)一起,是一个致力于推广与应用统计学知识的网站和社区。统计之都最初由谢益辉于2006年创办,现由世界各地的众多志愿者共同管理维护。图12展示的是该论坛的首页。如果你有问题,可以先在此论坛查找与自己的问题相关的帖子,看是否有人问过类似的问题;或者从相关子版块(见图13)中进入,按主题分类查找答案。
图12 COS论坛主页
图13 COS论坛R语言子版块
StackOverflow是一个专业的编程问答类网站,任何人都可以在上面提出各种技术难题,热心的专业人员会尝试解答,其他的观众可以通过点赞把优秀的回答升到前面,这就让我们在查询时可以快速看到优质解答,十分方便。图14就是它的主页,大家遇到问题时,直接把问题的相关关键字输入搜索框就可以了。
图14 Stack Overflow网站主页
简单地说,GitHub是一个网上的代码托管工具。在这里,大家共享项目代码,并且可以互相提问、批注以及修改等。你可以学习别人做项目的完整代码,还可以把你自己的项目代码放上去,让全世界的人帮你修改和完善。
根据上面的介绍,GitHub上最富有的是各类项目、方法的程序示例,那么如果我们想开发一个项目或者想使用某种方法实现功能却又不知道从何入手时,就可以在这里搜索,看相关demo,获取灵感。比如狗熊会曾经推出过一期直播节目《逆天的数据探索性分析你值得拥有》,有听友如果想了解一下在这个领域有没有可供自己直接使用的现成代码块,就可以在GitHub中输入“R Exploratory Data Analysis”,然后点击回车即可看到如图15显示的搜索结果。
图15 GitHub中“R Exploratory Data Analysis”的搜索结果
搜索结果包括一些R包说明,点开第一个链接,仔细阅读README文档,就可以得到如图16和图17所示的代码块了。
图16 GitHub代码块示例(1)
图17 GitHub代码块示例(2)
在R语言社区中,我们常常发现这样一个问题:许多人遇到问题积极求助论坛,但是有时候发帖无数,收获甚少,甚至即使有人回答,答案也跟问题一样笼统,没有多少指导意义。
此时,不要埋怨这个世界上高手都傲慢,事实上,很多高手并不傲慢,只是对那些懒于动脑的“伸手党”才傲慢。所以要先自己做好充足的搜索功课,既尊重了别人的时间,又会让你在搜索过程中不断明确自己的问题细节,自学能力得到提升。
当然关于如何提问也有很多技巧。Stack Overflow上有专门教大家如何更好求助的小技巧(http://stackoverflow.com/questions/ask/advice)。如果想要更高水平地提问,不妨读一读这本书《How To Ask Questions The Smart Way》,专门就细讲在网络时代,如何聪明地求助才能让高手愿意回答你。
参考资料
[1]Ross Ihaka: The R project: A Brief History and Thoughts About the Future:https://www.stat.auckland.ac.nz/~ihaka/downloads/Massey.pdf
[2]R语言官网:https://www.r-project.org .
[3]GitHub主页:https://github.com.
[4]Stack Overflow主页:https://stackoverflow.com.
[5]统计之都:https://cosx.org.
[6]COS论坛:https://d.cosx.org.
[7]Hadley Wickham 介绍:
https://cosx.org/2015/09/hadley-wickham-the-man-who-revolutionized-r/.
[8]开发小游戏:http://blog.fens.me/r-game-2048/.
[9]抢红包算法:https://cosx.org/2015/02/lucky-money/.
请扫描以下二维码/点击链接购买
《R语言:从数据思维到数据实战》
https://detail.tmall.com/item.htm?spm=a220z.1000880.0.0.0A6pvS&id=581845865737
点击"阅读原文"下载数据、代码!