R for data Science(三)

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

dplyr 函数总结:

filter 筛选行

arrange 排列行

select 筛选列

mutate 增加列

transmute() 生成新列

group_by 分组变量

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

这些函数都可以和group_by()函数联合起来使用,group_by()函数可以改变每个函数的作用范围,让其从在整个数据集的操作上变为在每个分组上分别操作。

用法:

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
between()是对 x >= left & x <= right 的简写
image.png
x=seq(1,10)
x[between(x,left, right)]
image.png

接着就是讲解排序,我们最常用的就是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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 先贴一段第四章的话: You now have some experience running R code. I...
    阿伦影子阅读 5,095评论 0 2
  • 前言 正如前文提到的,数据分析有一半以上的时间会花在对原始数据的整理及变换上,包括选取特定的分析变量、汇总并筛选满...
    胡阿白阅读 5,774评论 1 13
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 13,143评论 0 13
  • 文/竹子 此刻我不知道应该写什么,脑海中想到了一些标题,浮现了一些间断的思考片段,但是细想又否定了自己,比如: 标...
    竹子Auguss阅读 1,696评论 0 0
  • 晨练第258天:仰卧起坐55个,俯卧撑25个 读经第77天:孟子 我的理解和收获 权利、财货、美色,都是人喜爱的。...
    山缘有约阅读 1,007评论 0 0