美文网首页数据-R语言-图表-决策-Linux-Python
R语言数据科学第五章:数据操作dplyr(上)

R语言数据科学第五章:数据操作dplyr(上)

作者: 佛系分析师 | 来源:发表于2019-05-29 20:47 被阅读0次

    超级好用的dplyr, 让你从数据小白跨出一大步。

    以下内容主要来自 R for data science 书第五章内容前半部分,主要讲几个基本命令(filterarrangeselectmutatesummarise)的操作。

    1.载入需要的R包

    library(tidyverse) #dplyr包已经被整合入tidyverse包
    library(nycflights13) #载入这个包主要是用里面的示例数据做分析
    

    2.使用命令

    • filter 按照条件过滤数据
    • arrange 排序
    • select 按照列名选择变量。功能强大,可使用正则表达式。
    • mutate 基于现有变量创造新变量
    • summarise 汇总统计数据,常和分组命令(groupby)一起使用

    3.filter

    过滤样本,可结合逻辑变量一起使用:

    • & 代表 和
    • | 代表 或
    • ! 代表 非
    • %in% 代表 是否被包含。 如1 %in% c(1,2)代表1是否包含于 c(1,2)。该命令会返回True。
    #筛选出1月1号的航班
    filter(flights, month==1, day==1)
    #筛选出1月或2月的航班
    filter(flights, month==1 | month==2)
    #筛选出不在1月或2月的航班
    filter(flights, !(month==1 | month==2))
    

    4.arrange

    排序。

    • 可按多个关键字排序,从前到后由主到次。
    • 默认升序,降序需要在排序变量外加desc,如:desc(month)
    #按时间顺序由前到后排序
    arrange(filter, year, month, day)
    #按航班延误时间有多到少排序
    arrange(flights, desc(arr_delay))
    

    5.select

    按变量名选择子数据框

    • 使用可以连续选取
    • 使用 -可删除指定变量
    • starts_with(), end_with(), contains()分别代表选取以指定字符开始、以指定字符结尾,包含指定字符的变量名。
    • matches()可使用正则表达式匹配变量名
    #选取变量名以“d”开头的变量
    select(flights, ends_with("d"))
    #选取变量名以“time”结尾的变量
    select(flights, ends_with("time"))
    #选取变量名中包含“dep”的变量
    select(flights, contains("time"))
    #使用正则表达式选取变量名以“d”开头的变量
    select(flights, matches("^d"))
    

    关于正则表达式的概念,以后会详细讲解。

    rename()可直接对变量重命名。如:
    rename(flights, mon = month)

    6.mutate

    增加新的变量。可对已有变量进行数学计算后生成新变量。

    # 使用航班到达时间减去航班出发时间生成航班运行时间变量。
    mutate(flights, use_time = arr_time - dep_time)
    

    transmute只保留新生成的变量。如:

    transmute(flights, use_time = arr_time - dep_time)
    

    7.summaries

    获得变量的汇总统计结果(均值,最大值,最小值,方差等),常和groupby一起使用,获得不同分组的汇总统计结果

    #计算航班平均延误时间
    summarise(flights, mean(dep_delay, na.rm=TRUE))
    #计算航班每月的平均延误时间
    flights %>% group_by(month) %>% summarise( mean(dep_delay, na.rm=TRUE))
    

    这里出现了一个新的符号%>%,是dplyr专用的。我们称之为管道符,功能类似于shell中的|,作用是讲前面的变量传递到后面使用。
    这个功能最大的好处是减少代码运行过程中生成的中间变量

    na.rm = TRUE 是R中常用的命令,在apply函数中也经常用到。作用是计算时不考虑缺失数据。

    相关文章

      网友评论

        本文标题:R语言数据科学第五章:数据操作dplyr(上)

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