购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 获取R帮助文档

1.3.1 在RStudio中看Help

在R中求助,最直接的入口就是RStudio上的Help(见图1-36)。

图1-36 RStudio帮助文档界面

前面已经介绍了如何阅读帮助文档,即从描述(description)、例子(example)入手更直观和容易理解。此外,还有两个查看例子的方法。

1.使用demo()函数

如果想看某个函数的使用样例,可以尝试使用demo()函数,它里面也包含一些函数示范小案例。输入demo()查看已经加载进内存的包里有例子的函数列表,输入demo("function_name")就可以执行某个具体函数的例子了。

2.使用vignette()函数

在R中,vignette是一个神奇的存在。vignette文档比普通帮助文档包含更丰富的背景信息、更详细的示例代码和图表解释,能让我们对相关函数的理论背景、算法细节、使用场景有更深入的了解,同时文档里包含的示例代码也能让用户更好地理解如何使用函数,如何解读分析结果等,是我们学习一个包的绝佳资源。唯一的缺点就是,并非所有的包都配有vignette,碰到这样的包,我们可以再借助网络资源或者大模型来找找例子。

图1-37是数据可视化包ggplot2的vignette文档示意图,可以看到,文档提供了通俗易懂的介绍、贴切实用的示例,非常具有可读性。使用时,只需要给vignette()函数中输入包的名字vignette(package_name)就可以啦。

图1-37 ggplot2的vignette文档示意图

1.3.2 学会使用搜索引擎

如果使用帮助文档不能很好地解决疑问,那么搜索引擎将是接下来的不二之选。以谷歌为例,它的搜索能力强大,定位精准,不仅可以完美捕捉R社区里的相关解答,还会搜寻出其他各类形式、各种来源的辅助学习材料,让我们有机会深入了解问题的来龙去脉,而不仅仅是获得一个答案。下面就以两个最常见的情景为例,来看看遇到“疑难杂症”时如何使用谷歌进行搜索。

1.遭遇bug

read.csv()是一个可以用来读入csv格式数据的函数,它的基本用法是read.csv(file,header=TRUE),其中参数file用来输入要读入的文件名,header用来告诉电脑是否把读入文件的第一行识别为变量名,如果header=TRUE则第一行为变量名而不是数据。

比如,你想读入一张存有“全国各省份与东西部地区对应数据”的表格,于是使用read.csv(),结果却出现了这样的错误(见图1-38)。

图1-38 read.csv()运行错误示例

面对这样的错误,不妨直接求助谷歌。首先,把这个错误提示粘贴在搜索框内,前面加上R,很多时候,这样就会得到还不错的搜索结果(见图1-39)。

图1-39 错误提示全文谷歌搜索结果

只看前几条返回结果,就可以知道出现错误的原因大概与中英文的编码有关。事实上,如果点开第一条链接,里面就有中英文编码的知识以及类似问题的解决办法,即改变整个文件的编码格式,也就是在read.csv()函数中,将参数fileEncoding设置为能够读取汉语的编码方式,比如“GBK”,再一试,完美解决(见图1-40)。

图1-40 read.csv()运行正确示例

当然,如果提取出该错误信息的英文关键词,也可以同样搜索到相关答案,而这时候返回的信息可能就比我们解决错误所需范围更广,有助于我们多视角排查问题,增长知识(见图1-41)。

图1-41 关键词谷歌搜索结果

【友情提示】

在使用搜索引擎时能用英文查询就尽量用英文,毕竟很多领域,英文资料远比中文资料丰富得多。比如,检索“探索性数据分析”,分别输入“探索性数据分析”和“Exploratory Data Analysis”,会得到如图1-42和图1-43所示的搜索结果。

图1-42 中文谷歌搜索结果

从数量上比,中文返回3 200多万条记录,而英文返回4亿5 000多万条记录;从质量上看,中文返回结果大多是零散的相关主题的介绍性文章,大部分来源于网络社区的总结内容,质量参差不齐,做了解用可以,但要深入学习恐怕远远不够,而英文返回的资料则丰富得多,有不少权威网站系统化的介绍,或者书籍的某个章节。比如图1-44所展示的就是英文搜索结果首页中所包含的美国环保局因果分析/诊断决策信息系统的系列文摘中对“探索性数据分析”的介绍。

图1-43 英文谷歌搜索结果

图1-44 搜索结果示意图

2.想要寻找新功能

除了遇到bug时可以求助谷歌,当你想要寻找新功能、实现新方法,却不知从何着手时,谷歌也是一个绝好的帮手。举例来说,如果你手头有一个含大量数据的csv,但普通的read.csv()函数太慢,影响效率,那么可以通过谷歌搜索看能否有办法加快读入数据的速度(见图1-45)。

图1-45 谷歌搜索结果

从图1-45可以看出,排名靠前的搜索结果均来自R-bloggers,Stack Overflow这类知名的R语言社区,它们提供了很多提高效率的方法。不妨打开其中的Stack Overflow网站一探究竟。从图1-46可以看到,热心网友已经给出了全面专业的解答,不仅有R包,还有对应函数。

图1-46 Stack Overflow网站解答

1.3.3 求助于开源社区、论坛

R语言是一款具有强大社区支持的软件,如果不能在搜索引擎中找到满意的答案,不妨把你的问题贴到社区中,与众多R语言爱好者共同探索。下面具体介绍三大社区网站:COS中文论坛、Stack Overflow和GitHub。

1.COS中文论坛

这是统计之都旗下的论坛网站(d.cosx.org),它同其主站(cosx.org)一起,是一个致力于推广与应用统计学知识的网站和社区。统计之都最初由谢益辉于2006年创办,现由世界各地的众多志愿者共同管理维护。图1-47展示的是该论坛的主页。如果你有问题,可以先在该论坛查找与自己的问题相关的帖子,看是否有人问过类似的问题,或者进入讨论区(见图1-48),按主题分类查找答案。

图1-47 COS论坛主页

图1-48 COS论坛讨论区首页

2.Stack Overflow

Stack Overflow是一个专业的编程问答类网站,任何人都可以在上面提出各种技术难题,热心的专业人员会尝试解答,其他观众可以通过点赞把优质回答推到前面,这就让我们在查询时可以快速看到优质解答,十分方便。图1-49就是它的主页,大家遇到问题时,直接把问题的相关关键字输入搜索框就可以了。

图1-49 Stack Overflow网站主页

3.GitHub

简单地说,GitHub是一个网上的代码托管工具。在这里,大家可以共享项目代码,并且互相提问、批注以及修改等。你可以学习别人做项目的完整代码,还可以把你自己的项目代码放上去,让全世界的人帮你修改和完善。

根据上面的介绍,GitHub上最富有的是各类项目、方法的程序示例,如果我们想开发一个项目或者想使用某种方法实现功能却又不知道从何入手时,就可以在这里搜索,看相关demo,获取灵感。比如狗熊会曾经推出一期直播节目《逆天的探索性数据分析 你值得拥有》,听友如果想了解在这个领域有没有可供自己直接使用的现成代码块,就可以在GitHub中输入“R Exploratory Data Analysis”,然后点击回车键即可看到如图1-50所示的搜索结果。

图1-50 GitHub中“R Exploratory Data Analysis”的搜索结果

搜索结果包罗万象。比如图1-50中的第一个链接是图书 Exploratory Data Analysis with R 的配套R资源。第二个链接是可以提供全自动数据探索能力、一键即可生成动态数据报表的数据分析和可视化工具。第三个链接则是一个R语言包,如果你想了解这个语言包,点开链接,仔细阅读README文档,就可以得到如图1-51和图1-52所示的代码块。

图1-51 GitHub代码块示例(1)

图1-52 GitHub代码块示例(2)

1.3.4 社区提问的技巧

在R语言社区中,我们常常发现:许多人遇到问题积极求助论坛,但有时发帖无数,收获甚少,甚至即使有人回答,答案也跟问题一样笼统,没有多少指导意义。

此时,不要埋怨这个世界上高手都傲慢,事实上,很多高手并不傲慢,只是对那些懒于动脑的“伸手党”才傲慢。所以自己要先做好充足的搜索功课,既尊重了别人的时间,又会让你在搜索过程中不断明确自己的问题细节,自学能力得到提升。

当然,关于如何提问也有很多技巧。Stack Overflow上有专门教大家如何更好求助的小技巧(http://stackoverflow.com/questions/ask/advice)。想要更高水平地提问,不妨读一读 How To Ask Questions the Smart Way 这本书,该书专门细讲了在网络时代如何聪明地求助才能让高手愿意回答。 tj4TcnUOr75IlByC/POHp8v2mHew7jstfzs0tRGnrpeyvBP4SVz4GWfnLoa2v5XS

点击中间区域
呼出菜单
上一章
目录
下一章
×