数据-R语言-图表-决策-Linux-PythonR数据科学读书会

R数据科学day2-1

2018-11-04  本文已影响6人  梦幻天堂_ccd5
如果不想麻烦每次设置工作目录,可以多保存几个R文件。需要哪个就打开哪个。

工作流-基础

基础.png

dplyr数据转换

终于知道变量名下面的<chr>代表啥了。

• int 表示整数型变量。
• dbl 表示双精度浮点数型变量,或称实数。
• chr 表示字符向量,或称字符串。
• dttm 表示日期时间(日期+ 时间)型变量。
• lgl 表示逻辑型变量,是一个仅包括TRUE 和FALSE 的向量。
• fctr 表示因子,R 用其来表示具有固定数目的值的分类变量。
• date 表示日期型变量。

1. 准备

install.packages("nycflights13") library(nycflights13) library(tidyverse)
因为要用的数据flights是nycflights13包里的,所以要先加载。

-- Conflicts ------------------------------------- tidyverse_conflicts() --
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()
dplyr包覆盖了基础R包中的两个函数,如果你要使用被覆盖的函数,需要输入他们的完整名称,以::连接包名和函数名。

flights #就瞅一眼,看看几行几列
?flights #好好瞅瞅每列表示什么意思
View(flights)#以表格的形式好好瞅瞅
class(flights)#了解他的数据类型

2. dplyr包的核心函数

• 按变量筛选观测值(filter())。
• 对行进行重新排序(arrange())。
• 按名称选取变量(select())。
• 使用现有变量的函数创建新变量(mutate())。
• 将多个值总结为一个摘要统计量(summarize())。
分组操作group_by(),可以和以上函数联合使用。

dplyr函数不修改原数据框,只从原数据框中生成新数据框,如果新生成的数据框不赋值给一个新的变量,那么就会丢失。
R要么输出结果,要么赋值。将赋值语句用括号括起来则可以同时完成这两种操作。

filter(flights, month == 1, day == 1) #输出结果
jan1 <- filter(flights, month == 1, day == 1) #赋值
(dec25 <- filter(flights, month == 12, day == 25))#两种操作

3.filter进行筛选

(1) 比较运算符

比较运算符:>、>=、<、<=、!=(不等于)和==(等于)

=是赋值操作,a=3是将3这个数值赋值给a这个变量。而==才是平时的数学中的等于,意思是比较是否相等,如a==b意思是a的值是否和b的值相等

near(1 / 49 * 49, 1)
#> [1] TRUE

计算机使用的是有限精度运算(显然无法存储无限位的数),因此请记住,你看到的每个
数都是一个近似值。比较浮点数是否相等时,不能使用==,而应该使用near()。

(2)逻辑元算法

& 表示“与”、
| 表示“或”、
! 表示“非”

x %in% y。这会选取出x 是y 中的一个值时的所有行。

filter(flights, month == 11 | month == 12) filter(flights, month %in% c(11, 12))表达意思相同。
注:%in%是非常好的一个函数,解决了我以前的一个大问题。比如我想找到excel中c列中和a列相同的行。
只需要c%in%a就可以了。

!(x & y)等价于!x | !y,!(x | y)等价于!x & !y

(3)缺失值

NA,表示有一个值,但是不知道具体是啥,相当于个陌生人。而NULL相当于,根本没人。。。
NA与NULL的区分:一个元素值全为NA的向量,它的长度是存在的,就等于元素的个数。而如果把一个向量的所有元素的值都设为NULL,这个向量就变成了“空值”,其长度为0,表明“空无一物”。

注:NA为缺失值,is.na()判断是否为缺失值,filter() 只能筛选出条件为TRUE 的行;它会排除那些条件为FALSE 和NA 的行。如果想保留缺失值,可以用这个函数

dplyr数据转换.png
上一篇下一篇

猜你喜欢

热点阅读