library(nycflights13)library(tidyverse)#> ── Attaching core tidyverse packages ───────────────────── tidyverse 2.0.0 ──#> ✔ dplyr 1.1.0.9000 ✔ readr 2.1.4#> ✔ forcats 1.0.0 ✔ stringr 1.5.0#> ✔ ggplot2 3.4.1 ✔ tibble 3.1.8#> ✔ lubridate 1.9.2 ✔ tidyr 1.3.0#> ✔ purrr 1.0.1#> ── Conflicts ─────────────────────────────────────── tidyverse_conflicts() ──#> ✖ dplyr::filter() masks stats::filter()#> ✖ dplyr::lag() masks stats::lag()#> ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all#> conflicts to become errors
第 3 章 数据转换 数据转换
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
导言
可视化是产生洞察力的重要工具,但很少有情况下,你能以正确的形式获得数据,制作出你想要的图表。通常情况下,你需要创建一些新的变量或摘要来回答你的数据问题,或者你只是想重新命名变量或重新排列观测值,让数据更容易处理。本章将向你介绍如何使用 dplyr 软件包和一个关于 2013 年从纽约市出发的航班的新数据集进行数据转换。
本章的目的是向你介绍转换数据帧的所有关键工具。我们将从对数据帧的行和列进行操作的函数开始,然后我们将回过头来进一步讨论管道,这是一个用于组合动词的重要工具。然后,我们将介绍分组功能。在本章的最后,我们将通过一个案例研究来展示这些函数的实际应用,在后面的章节中,当我们开始深入研究特定类型的数据(如数字、字符串、日期)时,我们将再次详细介绍这些函数。
先决条件
在本章中,我们将重点介绍 dplyr 软件包,它是 tidyverse 的另一个核心成员。我们将使用来自 nycflights13 软件包的数据来说明其中的关键思想,并使用 ggplot2 来帮助我们理解这些数据。
注意加载 tidyverse 时打印的冲突信息。如果你想在加载 dplyr 后使用这些函数的基础版本,你需要使用它们的全名: stats::filter()和 stats::lag().到目前为止,我们大多忽略了函数来自哪个软件包,因为大多数情况下这并不重要。不过,知道软件包可以方便查找帮助和相关函数,所以当我们需要精确地知道某个函数来自哪个软件包时,我们将使用与 R 相同的语法:packagename::functionname().
NYCFlights13
为了探索 dplyr 的基本动词,我们将使用 nycflights13::flights.该数据集包含 2013 年从纽约市出发的所有 336,776 次航班。数据来自美国运输统计局,记录在 ?flights.
flights#> # A tibble: 336,776 × 19#> year month day dep_time sched_dep_time ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access