R语法及绘图数据-R语言-图表-决策-Linux-PythonR数据科学

R for data Science(三)

2018-09-08  本文已影响21人  一路向前_莫问前程_前程似锦

在看之前,首先来一波总结

dplyr 函数总结:

filter 筛选行

arrange 排列行

select 筛选列

mutate 增加列

transmute() 生成新列

group_by 分组变量

summarise() 汇总,里面设置函数

用法:

filter/arrange/select/mutate (data,函数式 )


今天我们看一下,我们的前2个函数

首先我们加载数据包

library(nycflights13)
library(tidyverse)

**第一个包为数据集,包含的数据是2013年所有从纽约出发的航班时刻表,共计336776次,在加载第二个包的时候,会出现warning **

image
这个是说明包里面的函数和R自带的底层函数出现相同的函数名,这样就会出现底层的函数就会被改写,如果你执意要使用底层函数的话
你可以这样操作:
stats::filter()

好了,我们看一下dplyr推荐的几大函数来解决我们的问题:

filter函数功能:挑选行

用法: filter(dataset ,表达式)

注意:dataset 必须是dataframe

例如:挑选所有航班时间为一月一号的,需要下面一行命令:

filter(flights, month == 1, day == 1)
image
如果想把将结果储存一次,就使用一个赋值符号就可以了

jan1<- filter(flights, month == 1, day == 1)

而且每个表示的为同时满足的意思

如果想储存的同时,还想看一下结果就多加一个括号,可以理解为打印

(jan1<- filter(flights, month == 1, day == 1))

逻辑比较操作符:
等于 ==
不等于 !=
大于 >
大于等于 >=
小于 <
小于等于 <=
这里给大家出个问题:

sqrt(2) ^ 2 == 2

返回的是T还是F?
image
返回的是F,因为程序存储的结果是有理数,而sqrt(2)是无理数,

near(sqrt(2) ^ 2, 2)

这样返回的为T

image
条件操作符:
& 取交集
| 或者
%in% 包含符号

例如:寻找航班起飞时间为11月或者12月

filter(flights, month == 11 | month == 12)

也可以这样:

filter(flights, month %in% c(11, 12))

下面三个也是等价的。

filter(flights, !(arr_delay > 120 | dep_delay > 120))

filter(flights, arr_delay <= 120, dep_delay <= 120)

filter(flights, arr_delay <= 120&dep_delay <= 120)

寻找缺失值,如果你的数据集里面存在缺失值,如何找出呢?
借助is.na来寻找
image

接着就是讲解排序,我们最常用的就是order

x[order(),] 正叙
x[order(-),] 倒叙
arrange 排序
用法:arrange(data.frame ,变量)

arrange(flights, year, month, day)</pre>
代表先按照year从小到大排序,再按照月份,再按照天数

倒叙排列加上desc(变量)

arrange(flights, desc(arr_delay))

如果数据集里面存在NA值,那么他总会排在最后
image
那就产生一个问题,如果我们想把NA值放在最上面该怎么解决呢?
image
需要借助is.na,同时desc也要加上。
这次就到这,下次讲解select ,mutate。

上一篇 下一篇

猜你喜欢

热点阅读