R数据科学day2-1

作者: 梦幻天堂_ccd5 | 来源:发表于2018-11-04 16:04 被阅读6次
    如果不想麻烦每次设置工作目录,可以多保存几个R文件。需要哪个就打开哪个。

    工作流-基础

    • 使用RStudio 快捷键:Alt+-(Alt 加上减号)。RStudio 会自动在<- 的两端加上空格。

    • 对象名称必须以字母开头,并且只能包含字母、数字、_ 和.

    • 快速输入变量,输入开头,按Tab;再次输入可以按后按Ctrl+ ↑。

    • Alt+Shift+K显示所有快捷键。

    基础.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

    相关文章

      网友评论

        本文标题:R数据科学day2-1

        本文链接:https://www.haomeiwen.com/subject/euxlxqtx.html