dplyr包

这个包是Hadley Wickham创建和维护的。它包括了(几乎)全部可以用来加快数据处理进程的内容。它最有名的是数据探索和数据转换功能。它的链式语法让它使用起来很方便。它包括5个主要的数据处理指令:

1. 过滤——集于某一条件过滤数据

2. 选择——选出数据集中感兴趣的列

3. 排列——升序或降序排列数据集中的某一个值域

4. 变换——从已有变量生成新的变量

5. 概括(通过group_by)——提供常用的操作分析,如最小值、最大值、均值等

只需要关注这些指令便可以完成很好的数据探索工作。让我们一起逐一了解一下这些指令。我用到了两个R中内置的数据集mtcars和iris.

library(dplyr)

library(R6)

data(mtcars)

data(iris)

mydata<-mtcars

head(mydata)

mpg cyl disp  hp drat    wt  qsec vs am gear carb

Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4

Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4

Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1

Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1

Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2

Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

mynewdata<-tbl_df(mydata)

myirisdata<-tbl_df(iris)

Mynewdata

Source: local data frame [32 x 11]

mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb

(dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl)

1   21.0     6 160.0   110  3.90 2.620 16.46     0     1     4     4

2   21.0     6 160.0   110  3.90 2.875 17.02     0     1     4     4

3   22.8     4 108.0    93  3.85 2.320 18.61     1     1     4     1

4   21.4     6 258.0   110  3.08 3.215 19.44     1     0     3     1

5   18.7     8 360.0   175  3.15 3.440 17.02     0     0     3     2

6   18.1     6 225.0   105  2.76 3.460 20.22     1     0     3     1

7   14.3     8 360.0   245  3.21 3.570 15.84     0     0     3     4

8   24.4     4 146.7    62  3.69 3.190 20.00     1     0     4     2

9   22.8     4 140.8    95  3.92 3.150 22.90     1     0     4     2

10  19.2     6 167.6   123  3.92 3.440 18.30     1     0     4     4

..   ...   ...   ...   ...   ...   ...   ...   ...   ...   ...   ...

Myirisdata

Source: local data frame [150 x 5]

Sepal.Length Sepal.Width Petal.Length Petal.Width Species

(dbl)       (dbl)        (dbl)       (dbl)  (fctr)

1           5.1         3.5          1.4         0.2  setosa

2           4.9         3.0          1.4         0.2  setosa

3           4.7         3.2          1.3         0.2  setosa

4           4.6         3.1          1.5         0.2  setosa

5           5.0         3.6          1.4         0.2  setosa

6           5.4         3.9          1.7         0.4  setosa

7           4.6         3.4          1.4         0.3  setosa

8           5.0         3.4          1.5         0.2  setosa

9           4.4         2.9          1.4         0.2  setosa

10          4.9         3.1          1.5         0.1  setosa

..          ...         ...          ...         ...     ...

#使用过滤器来过滤数据所需的条件

library(lazyeval)

filter(mynewdata,cyl>4 & gear>4)

Source: local data frame [3 x 11]

mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb

(dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl)

1  15.8     8   351   264  4.22  3.17  14.5     0     1     5     4

2  19.7     6   145   175  3.62  2.77  15.5     0     1     5     6

3  15.0     8   301   335  3.54  3.57  14.6     0     1     5     8

filter(mynewdata,cyl>4)

Source: local data frame [21 x 11]

mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb

(dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl)

1   21.0     6 160.0   110  3.90 2.620 16.46     0     1     4     4

2   21.0     6 160.0   110  3.90 2.875 17.02     0     1     4     4

3   21.4     6 258.0   110  3.08 3.215 19.44     1     0     3     1

4   18.7     8 360.0   175  3.15 3.440 17.02     0     0     3     2

5   18.1     6 225.0   105  2.76 3.460 20.22     1     0     3     1

6   14.3     8 360.0   245  3.21 3.570 15.84     0     0     3     4

7   19.2     6 167.6   123  3.92 3.440 18.30     1     0     4     4

8   17.8     6 167.6   123  3.92 3.440 18.90     1     0     4     4

9   16.4     8 275.8   180  3.07 4.070 17.40     0     0     3     3

10  17.3     8 275.8   180  3.07 3.730 17.60     0     0     3     3

..   ...   ...   ...   ...   ...   ...   ...   ...   ...   ...   ...

filter(myirisdata,Species %in% c("setosa","virginica"))

Source: local data frame [100 x 5]

Sepal.Length Sepal.Width Petal.Length Petal.Width Species

(dbl)       (dbl)        (dbl)       (dbl)  (fctr)

1           5.1         3.5          1.4         0.2  setosa

2           4.9         3.0          1.4         0.2  setosa

3           4.7         3.2          1.3         0.2  setosa

4           4.6         3.1          1.5         0.2  setosa

5           5.0         3.6          1.4         0.2  setosa

6           5.4         3.9          1.7         0.4  setosa

7           4.6         3.4          1.4         0.3  setosa

8           5.0         3.4          1.5         0.2  setosa

9           4.4         2.9          1.4         0.2  setosa

10          4.9         3.1          1.5         0.1  setosa

..          ...         ...          ...         ...     ...

#使用选择选择列的名字

select(mynewdata,cyl,mpg,hp)

Source: local data frame [32 x 3]

cyl   mpg    hp

(dbl) (dbl) (dbl)

1      6  21.0   110

2      6  21.0   110

3      4  22.8    93

4      6  21.4   110

5      8  18.7   175

6      6  18.1   105

7      8  14.3   245

8      4  24.4    62

9      4  22.8    95

10     6  19.2   123

..   ...   ...   ...

#使用-隐藏列

select(mynewdata,-cyl,-mpg)

select(mynewdata,-c(hp,mpg))

Source: local data frame [32 x 9]

cyl  disp  drat    wt  qsec    vs    am  gear  carb

(dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl)

1      6 160.0  3.90 2.620 16.46     0     1     4     4

2      6 160.0  3.90 2.875 17.02     0     1     4     4

3      4 108.0  3.85 2.320 18.61     1     1     4     1

4      6 258.0  3.08 3.215 19.44     1     0     3     1

5      8 360.0  3.15 3.440 17.02     0     0     3     2

6      6 225.0  2.76 3.460 20.22     1     0     3     1

7      8 360.0  3.21 3.570 15.84     0     0     3     4

8      4 146.7  3.69 3.190 20.00     1     0     4     2

9      4 140.8  3.92 3.150 22.90     1     0     4     2

10     6 167.6  3.92 3.440 18.30     1     0     4     4

..   ...   ...   ...   ...   ...   ...   ...   ...   ...

#选择一系列列

select(mynewdata,cyl:gear)

Source: local data frame [32 x 9]

cyl  disp    hp  drat    wt  qsec    vs    am  gear

(dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl)

1      6 160.0   110  3.90 2.620 16.46     0     1     4

2      6 160.0   110  3.90 2.875 17.02     0     1     4

3      4 108.0    93  3.85 2.320 18.61     1     1     4

4      6 258.0   110  3.08 3.215 19.44     1     0     3

5      8 360.0   175  3.15 3.440 17.02     0     0     3

6      6 225.0   105  2.76 3.460 20.22     1     0     3

7      8 360.0   245  3.21 3.570 15.84     0     0     3

8      4 146.7    62  3.69 3.190 20.00     1     0     4

9      4 140.8    95  3.92 3.150 22.90     1     0     4

10     6 167.6   123  3.92 3.440 18.30     1     0     4

..   ...   ...   ...   ...   ...   ...   ...   ...   ...

#链接或流水线——执行multile操作方式

mynewdata %>%

select(cyl,wt,gear)%>%

filter(wt >2)

Source: local data frame [28 x 3]

cyl    wt  gear

(dbl) (dbl) (dbl)

1      6 2.620     4

2      6 2.875     4

3      4 2.320     4

4      6 3.215     3

5      8 3.440     3

6      6 3.460     3

7      8 3.570     3

8      4 3.190     4

9      4 3.150     4

10     6 3.440     4

..   ...   ...   ...

#安排可以用来重新排序行

mynewdata %>%

select(cyl,wt,gear)%>%

arrange(wt)

Source: local data frame [32 x 3]

cyl    wt  gear

(dbl) (dbl) (dbl)

1      4 1.513     5

2      4 1.615     4

3      4 1.835     4

4      4 1.935     4

5      4 2.140     5

6      4 2.200     4

7      4 2.320     4

8      4 2.465     3

9      6 2.620     4

10     6 2.770     5

..   ...   ...   ...

#创造新的列

mynewdata %>%

select(mpg,cyl)%>%

mutate(newvariable=mpg*cyl)

Source: local data frame [32 x 3]

mpg   cyl newvariable

(dbl) (dbl)       (dbl)

1   21.0     6       126.0

2   21.0     6       126.0

3   22.8     4        91.2

4   21.4     6       128.4

5   18.7     8       149.6

6   18.1     6       108.6

7   14.3     8       114.4

8   24.4     4        97.6

9   22.8     4        91.2

10  19.2     6       115.2

..   ...   ...         ...

#这是用于查找数据的见解

#你可以使用重命名命令重命名变量

mynewdata %>% rename(miles=mpg)

Source: local data frame [32 x 11]

miles   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb

(dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl) (dbl)

1   21.0     6 160.0   110  3.90 2.620 16.46     0     1     4     4

2   21.0     6 160.0   110  3.90 2.875 17.02     0     1     4     4

3   22.8     4 108.0    93  3.85 2.320 18.61     1     1     4     1

4   21.4     6 258.0   110  3.08 3.215 19.44     1     0     3     1

5   18.7     8 360.0   175  3.15 3.440 17.02     0     0     3     2

6   18.1     6 225.0   105  2.76 3.460 20.22     1     0     3     1

7   14.3     8 360.0   245  3.21 3.570 15.84     0     0     3     4

8   24.4     4 146.7    62  3.69 3.190 20.00     1     0     4     2

9   22.8     4 140.8    95  3.92 3.150 22.90     1     0     4     2

10  19.2     6 167.6   123  3.92 3.440 18.30     1     0     4     4

..   ...   ...   ...   ...   ...   ...   ...   ...   ...   ...   ...

R语言 数据处理 dplyr包 数据清理相关推荐

  1. R语言使用dplyr包的full_join函数基于多个字段(数据列)全连接两个dataframe、按照多列对数据进行全连接

    R语言使用dplyr包的full_join函数基于多个字段(数据列)全连接两个dataframe.按照多列对数据进行全连接 目录

  2. R语言使用dplyr包的arrange函数对dataframe数据进行排序

    R语言使用dplyr包的arrange函数对dataframe数据进行排序 目录 R语言使用dplyr包的arrange函数对dataframe数据进行排序 R语言使用dplyr包的arrange函数 ...

  3. R语言使用dplyr包的arrange函数依据dataframe数据的指定数据列对dataframe进行排序(默认从小到大)

    R语言使用dplyr包的arrange函数依据dataframe数据的指定数据列对dataframe进行排序(默认从小到大) 目录

  4. R语言使用dplyr包的summarise函数计算dataframe数据中的指定数据列的最大值和最小值的差、计算指定数据列的极差

    R语言使用dplyr包的summarise函数计算dataframe数据中的指定数据列的最大值和最小值的差.计算指定数据列的极差 目录

  5. R语言使用dplyr包的summarise函数计算dataframe数据中指定(特定)数据列的移动平均值

    R语言使用dplyr包的summarise函数计算dataframe数据中指定(特定)数据列的移动平均值 目录

  6. R语言使用dplyr包进行多个dataframe的全连接(full join)

    R语言使用dplyr包进行多个dataframe的全连接(full join) 目录 R语言使用dplyr包进行多个dataframe的全连接(full join) R语言数据连接(join.merg ...

  7. R语言使用dplyr包使用group_by函数、summarise函数和mutate函数计算分组下的均值、标准差、样本个数、以及分组均值的95%执行区间对应的下限值和上限值(Calculate CI)

    R语言使用dplyr包使用group_by函数.summarise函数和mutate函数计算分组下的均值.标准差.样本个数.以及分组均值的95%执行区间对应的下限值和上限值(Calculate 95% ...

  8. R语言使用dplyr包基于因子变量(factor)将原dataframe拆分为每一个因子对应的单独数据集dataframe实战

    R语言使用dplyr包基于因子变量(factor)将原dataframe拆分为每一个因子对应的单独数据集dataframe实战 目录

  9. R语言使用dplyr包的arrange函数进行dataframe排序、arrange函数基于一个字段(变量)进行降序排序实战

    R语言使用dplyr包的arrange函数进行dataframe排序.arrange函数基于一个字段(变量)进行降序排序实战 目录

最新文章

  1. cocos2d-x一些核心概念介绍
  2. 最长递增子序列问题的求解
  3. android BiConsumer 使用 ClassNotDefException
  4. Play Framework 2.2.6 安装
  5. LeetCode题组:第206题-反转链表
  6. python3中多项式创建_机器学习入门之机器学习之路:python 多项式特征生成PolynomialFeatures 欠拟合与过拟合...
  7. LNMP部署(分享十七)
  8. 在java中使用JMH(Java Microbenchmark Harness)做性能测试
  9. SAP Commerce Cloud Spartacus UI footer 区域的设计模型
  10. MaxCompute印尼开服,成为阿里云第十二个大数据服务节点
  11. 迅捷cad_迅捷功能
  12. $.ajax提交,后台接受到的值总是乱码?明天再总结
  13. 联想微型计算机q190怎么拆,联想q190迷你小主机上网怎?
  14. 分号的html文本,vue中利用v-html按分号将文本换行
  15. 谷歌浏览器SwitchyOmega插件下载安装
  16. 【计组5.5】指令流水线
  17. MySQL必知必会总结
  18. 如何记账,筛选指定收支类别
  19. JSF 原理简要介绍
  20. buildroot构建根文件系统

热门文章

  1. 文献精读-PSEP-生物质和PE塑料的共热解MD以及DFT模拟
  2. 星空主题设计理念_星空主题餐厅设计
  3. OJ实验5-8 使用函数求圆台体积OJ
  4. 30岁无技术 出路在哪里?
  5. mileiq使用蓝牙提高驱动器质量
  6. java web期末课程设计 学生成绩管理系统(mysql,jstl+el,Javabean)+增删改查,session域+servlet(基础易理解)
  7. 嵌入式到底是不是个大坑?6个对话让你重新认清真相!
  8. 解决安全处理器报告已超过重新整理的最大允许数量。在尝试再次重新整理之前,必须重新安装 OS。
  9. 田宗仁:没有资金应当如何创业?
  10. 使用 Prometheus 配置 SLO 监控和告警