r语言中mpg数据_R语言之数据处理常用包

本文介绍了R语言中用于数据处理的重要包dplyr和tidyr。dplyr包提供了高效的数据筛选、排列、选择、变形、汇总和分组功能,如filter()、arrange()、select()、mutate()和group_by()。tidyr包则专注于数据的宽窄转换,包括gather()和spread()函数。此外,还简述了data.table包在数据处理上的优势和常用函数。
摘要由CSDN通过智能技术生成

dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其它数据库的接口;tidyr包的作者是Hadley Wickham, 该包用于“tidy”你的数据,这个包常跟dplyr结合使用。

dplyr、tidyr包安装及载入

install.packages("dplyr")

install.packages("tidyr")

library(dplyr)

library(tidyr)

使用datasets包中的mtcars数据集做演示,首先将过长的数据整理成友好的tbl_df数据:

mtcars_df = tbl_df(mtcars)

一、dplyr包基本操作

1.1 筛选: filter()

按给定的逻辑判断筛选出符合要求的子数据集

filter(mtcars_df,mpg==21,hp==110)#A tibble: 2 x 11

mpg cyl disp hp drat wt qsec vs am gear carb

1 21 6 160 110 3.9 2.620 16.46 0 1 4 4

2 21 6 160 110 3.9 2.875 17.02 0 1 4 4

1.2 排列: arrange()

按给定的列名依次对行进行排序:

arrange(mtcars_df, disp) #可对列名加 desc(disp) 进行倒序

#A tibble: 32 x 11

mpg cyl disp hp drat wt qsec vs am gear carb

1 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1

2 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2

3 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1

4 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1

5 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2

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

7 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1

8 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2

9 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2

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

#... with 22 more rows

1.3 选择: select()

用列名作参数来选择子数据集:

select(mtcars_df, disp:wt)#A tibble: 32 x 4

disp hp drat wt*

1 160.0 110 3.90 2.620

2 160.0 110 3.90 2.875

3 108.0 93 3.85 2.320

4 258.0 110 3.08 3.215

5 360.0 175 3.15 3.440

6 225.0 105 2.76 3.460

7 360.0 245 3.21 3.570

8 146.7 62 3.69 3.190

9 140.8 95 3.92 3.150

10 167.6 123 3.92 3.440

#... with 22 more rows

1.4 变形: mutate()

对已有列进行数据运算并添加为新列:

mutate(mtcars_df,

NO= 1:dim(mtcars_df)[1])#A tibble: 32 x 12

mpg cyl disp hp drat wt qsec vs am gear carb NO

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

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

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

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

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

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

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

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

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

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

#... with 22 more rows

1.5 汇总: summarise()

对数据框调用其它函数进行汇总操作, 返回一维的结果:

summarise(mtcars_df,

mdisp= mean(disp, na.rm =TRUE))#A tibble: 1 x 1

mdisp

1 230.7219

1.6 分组: group_by()

当对数据集通过group_by()添加了分组信息后,mutate(),arrange() 和 summarise() 函数会自动对这些 tbl 类数据执行分组操作。

cars

countcars

#A tibble: 3 x 2

cyl count

1 4 11

2 6 7

3 8 14

1.7 连接符%>%

包里还新引进了一个操作符, 使用时把数据名作为开头, 然后依次对此数据进行多步操作.

Batting %>%group_by(playerID) %>%summarise(total = sum(G)) %>%arrange(desc(total)) %>%head(5)

二、tidyr包基本操作

2.1 宽转长:gather()

使用gather()函数实现宽表转长表,语法如下:

gather(data, key, value, …, na.rm = FALSE, convert =FALSE)

data:需要被转换的宽形表

key:将原数据框中的所有列赋给一个新变量key

value:将原数据框中的所有值赋给一个新变量value

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值