初识R语言—排序和选取子集
2020-04-02 本文已影响0人
超级无敌大蜗牛
排序
-
order()
R自带
attach(data)
> data[order(mpg),]##升序
mpg cyl disp
Valiant 18.1 6 225
Hornet Sportabout 18.7 8 360
Mazda RX4 21.0 6 160
Mazda RX4 Wag 21.0 6 160
Hornet 4 Drive 21.4 6 258
Datsun 710 22.8 4 108
> data[order(-mpg),]##降序
mpg cyl disp
Datsun 710 22.8 4 108
Hornet 4 Drive 21.4 6 258
Mazda RX4 21.0 6 160
Mazda RX4 Wag 21.0 6 160
Hornet Sportabout 18.7 8 360
Valiant 18.1 6 225
> data[order(mpg,cyl),]##mpg为主要排序依据,cyl为次要参考
mpg cyl disp
Valiant 18.1 6 225
Hornet Sportabout 18.7 8 360
Mazda RX4 21.0 6 160
Mazda RX4 Wag 21.0 6 160
Hornet 4 Drive 21.4 6 258
Datsun 710 22.8 4 108
- dplyr包中的arrange()
> arrange(data,mpg)##默认升序
mpg cyl disp
1 18.1 6 225
2 18.7 8 360
3 21.0 6 160
4 21.0 6 160
5 21.4 6 258
6 22.8 4 108
> arrange(data,mpg,disp)##两个关键词排序
mpg cyl disp
1 18.1 6 225
2 18.7 8 360
3 21.0 6 160
4 21.0 6 160
5 21.4 6 258
6 22.8 4 108
> arrange(data,-mpg,disp)##降序
mpg cyl disp
1 22.8 4 108
2 21.4 6 258
3 21.0 6 160
4 21.0 6 160
5 18.7 8 360
6 18.1 6 225
取子集
- subset
> subset(data,mpg>=20 & vs == 0)##筛选出mpg大于等于20,并且vs等于0的数据集
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21 6 160 110 3.9 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
> subset(data,mpg>=20 & vs == 0,mpg)##只返回mpg这一列
mpg
Mazda RX4 21
Mazda RX4 Wag 21
> subset(data,mpg>=20 & vs == 0,1)##只返回第一列,既mpg这一列
mpg
Mazda RX4 21
Mazda RX4 Wag 21
> subset(data,mpg>=20 & vs == 0,1:3)##只返回1-3列
mpg cyl disp
Mazda RX4 21 6 160
Mazda RX4 Wag 21 6 160
- dplyr包中的filter函数
library(dplyr)
> filter(data,mpg>=20,vs==0)##且
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
> filter(data,mpg>=20|vs==0)##或
mpg cyl disp hp drat wt qsec vs am gear carb
1 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
2 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
3 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
4 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
5 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
总结,用order