- 来自:https://qiita.com/aakansh9/items/c2c4d3f653162778b757
- https://dplyr.tidyverse.org/
- https://tidyr.tidyverse.org/
dplyr是R中着名的plyr包的下一个版本,用来处理转换数据,
tidyr用来获得整洁(tidy)的数据;
%>%最初在封装magrittr中引入的管道操作器,现在这两个包中都受支持并且非常容易上瘾。
我们将会知道代码中(){}的区别。
我们将首先讨论管道运算符(%>%)。
R管道: %>%
在代码中频繁使用管道可以极大地提高代码的整洁度。它有助于避免在代码中不必要地使用临时变量。
基本含义%>%是:
R管道代码 | 等效代码 |
---|---|
x %>% f | f(x) |
x %>% f(y) | f(x,y) |
x %>% f(.,y) | f(x,y) |
x %>% f(y,.) | f(y,x) |
x %>% f(y, z = .) | f(y,z=x) |
x %>% f %>% g | g(f(x)) |
z <- x %>% f | z <- f(x) |
请注意,x左侧的变量%>%将作为右侧函数中的第一个参数应用。可以使用点(.)称为占位符的默认行为进行更改。
但是,要记住的一件重要事情是,当.嵌套表达式中出现时,仍会应用第一个参数规则。但是使用花括号可以抑制此行为{ }。如下,
R管道代码 | 等效代码 |
---|---|
data %>% f(x = ncol(.)) | f(data, x = ncol(data)) |
data %>% { f(x = ncol(.)) } | f(x = ncol(data)) |
dplyr包
该软件包提供了直观的“动词”,可用于处理R中的数据帧(例如:用于子集化,汇总,重新排列数据帧)。
dplyr包的基本动词/功能是:
dplyr动词 | 含义 |
---|---|
select() | 只保留你提到的列 |
rename() | 重命名您提到的列 |
mutate() | 添加新列并保留现有列 |
filter() | 返回具有匹配条件的行的子集 |
arrange() | 重新排序行 |
tidyr
该软件包提供动词来清理/整理数据。
这里的主要动词有:
tidyr动词 | 含义 |
---|---|
gather() | 使数据更长 |
spread() | 使长数据更广泛 |
unite() | 将多列粘贴到一起 |
separate() | 将一列拆分成几列 |