R语言工作流程:获取帮助

https://wp.me/p80aHo-2vT

随着你开始将本书中介绍的技术应用到自己的数据上,你很快就会遇到一些我们没有回答的问题。本节介绍一些如何获取帮助以及持续学习的技巧。

Google 是你的朋友

如果你卡住了,先从 Google 开始。通常在查询中加上 “R” 就足以将结果限制在相关内容:如果搜索没有帮助,这通常意味着没有可用的 R 特定结果。此外,加入 “ggplot2”之类的包名,也能进一步缩小范围,让你找到更熟悉的代码,例如,“如何在 R 中制作箱线图” 与 “如何在带有 ggplot2 的 R 中制作箱线图”。Google 对错误信息尤其有用。如果你看到一条错误信息却完全不知道它是什么意思,试着去 Google 一下!很可能过去已经有人被它困扰过,网上某处会有帮助。(如果错误信息不是英文,运行 Sys.setenv(LANGUAGE = "en") 后重新执行代码;你更有可能找到针对英文错误信息的帮助。)

如果 Google 没能帮上忙,试试 Stack Overflow。先花一点时间搜索已有答案,并加入 [R] 来限制你的搜索范围,使其只包含使用 R 的问题和答案。

制作 reprex

如果你的 Google 搜索没有找到任何有用的信息,那么准备一个 reprex(即 minimal reproducible example,最小可重现示例)是个非常好的主意。一个好的 reprex 能让别人更容易帮助你,而且你常常会在制作它的过程中自己就把问题弄清楚。创建 reprex 主要分两部分:

第一,你需要让代码可重现。这意味着你必须捕捉所有内容,也就是包含任何 library() 调用,并创建所有必要的对象。确保这一点最简单的方法是使用 reprex 包。

第二,你需要让它尽可能精简。删掉所有与问题没有直接关系的内容。这通常意味着要创建一个比你在实际中面对的对象小得多、简单得多的 R 对象,甚至直接使用内置数据。

听起来工作量很大!确实可能如此,但回报也很大:

80% 的情况下,制作一个优秀的 reprex 就能揭示问题的根源。把一个自包含且尽可能精简的示例写出来,常常神奇地就能让你自己回答自己的问题。

另外 20% 的情况下,你也会把问题的核心以一种别人很容易上手的方式呈现出来。这会大大提高你获得帮助的机会!

手工创建 reprex 时,很容易不小心遗漏某些东西,导致你的代码无法在别人的电脑上运行。要避免这个问题,可以使用 reprex 包。假设你把下面这段代码复制到剪贴板上(或者,在 RStudio Server 或 Cloud 中,选中它):

y <- 1:4
mean(y)
library(reprex)
reprex()

一个渲染精美的 HTML 预览会显示在 RStudio 的 Viewer 中(如果你正在使用 RStudio),否则会在你的默认浏览器中打开。reprex 会自动复制到你的剪贴板中(在 RStudio Server 或 Cloud 中,你需要自己手动复制):

``` r
y <- 1:4
mean(y)
#> [1] 2.5
```

这段文本采用一种特殊的格式,称为 Markdown,可以粘贴到 Stack Overflow 或 GitHub 等网站上,它们会自动将其渲染成代码样式。下面是这段 Markdown 在 GitHub 上渲染后的样子:

任何人都可以立即复制、粘贴并运行它。

要让你的示例可重现,你需要包含三样东西:所需的包、数据和代码。

包应该在脚本顶部加载,这样就很容易看出示例需要哪些包。这也是检查你是否使用了每个包的最新版本的好时机;你可能已经发现了一个自从你安装或上次更新该包以来就已修复的 bug。

包含数据最简单的方法是使用 dput() 生成重建它所需的 R 代码。例如,要在 R 中重建 mtcars 数据集,请执行以下步骤:

在 R 中运行 dput(mtcars)
复制输出
在 reprex 中输入 mtcars <-,然后粘贴。
尽量使用能仍然揭示问题的最小数据子集。

花一点时间确保你的代码易于他人阅读:

确保你使用了空格,并且变量名简洁但有信息量。

使用注释来指出问题所在。

尽最大努力删除所有与问题无关的内容。

你的代码越短,就越容易理解,也越容易修复。

最后,通过启动一个全新的 R 会话并复制粘贴你的脚本,检查你是否真的制作出了一个可重现的示例。

创建 reprex 并不简单,学会制作好的、真正最小的 reprex 需要一些练习。不过,学会在提问时包含代码,并投入时间让它可重现,会在你学习和掌握 R 的过程中持续带来回报。

投资于自己

你还应该花一些时间提前为解决问题做准备,而不是等问题出现后再去应对。每天花一点时间学习 R,长期来看会带来丰厚回报。一个方法是关注 tidyverse 团队在 tidyverse 博客上的动态。若想更广泛地了解 R 社区的情况,我们建议阅读 R Weekly:这是一个社区协作项目,每周汇总 R 社区中最有趣的新闻。

总结

本章结束了本书的 Whole Game 部分。到现在为止,你已经看到了数据科学流程中最重要的部分:可视化、转换、整理和导入。现在你已经对整个流程有了整体性的理解,接下来我们将开始深入讲解各个小部分的细节。

本书的下一部分,Visualize,将更深入地探讨图形语法以及使用 ggplot2 创建数据可视化,展示如何运用你目前学到的工具进行探索性数据分析,并介绍用于制作便于交流的图表的良好实践。

评论

发表评论

了解 数据控|突破是我们的每一步 的更多信息

立即订阅以继续阅读并访问完整档案。

继续阅读