美文网首页
R成精-用dplyr高效变换数据和处理数据

R成精-用dplyr高效变换数据和处理数据

作者: 果果哥哥BBQ | 来源:发表于2017-12-16 11:30 被阅读159次

    dplyr包介绍

    dplyr包是R大神大杰作,Hadley Wickham,被称为一个改变R的人,dplyr是在plyr上升级的又一力作。
    dplyr包包含了数据整理、筛选、变换、汇总等多种函数。基本上可以解决数据处理的80%的问题。

    基础用法

    本文以自己构造的数据集进行演示,以便方便理解。

    data1 <- data.frame(id=c(1:10),class=c(15:6),score=c("十","九","八","七","六","五","四","三","二","一"),ennum=c("one","two","three","four","five","ten","nine","eight","seven","six"),type=c("a","b"))
    data2 <- rbind(data1,c(10,6,"一","six","b"))
    
    1. 单表操作
    • 排序 arrange 对变量进行排序,默认为升序,可以用desc()降序排列.
    data1 %>% arrange()
    data1 %>% arrange(desc(id))
    data1 %>% arrange(by=class)
    
    • 去重distinct,相当于base函数的unique,该函数有一个.keep_all的参数,如果等于FALSE,输出去重的变量。如果等于TRUE,输出全部变量,有多个相同的观测数据,输出第一条数据。
    data2 %>% distinct()
    data2 %>% distinct(type)
     type
    1    a
    2    b
    data2 %>% distinct(type,.keep_all=TRUE)
    id class score ennum type
    1  1    15    十   one    a
    2  2    14    九   two    b
    
    • do
    • 条件筛选filter,根据条件变量筛选观察值。
      常用的筛选条件
    ==, >, >= etc
    
    &, |, !, xor()
    
    is.na()
    
    between(), near()
    
    data2 %>%filter(id==10)
    id class score ennum type
    1 10     6    一   six    b
    2 10     6    一   six    b
    

    等价于

    data2[id==10,]
    
    • group_by ungroup
    • mutate transmute
    • select rename
    • current_vars
      -starts_with end_with
    • contains matches
    • num_range one_of
    • everything
    • sample_n sample_frac
    • summarise summarize
    • 拉取一列变量pull
      pull(data,var=-1)
      data是数据集,var为空时默认拉取最后一列,var为正时从左边开始的列,var为负数从右边开始的列。
    • 根据位置选取观测值slice
      slice(data1,10:n())
      选取十行以后的数据
    1. 两个表操作
    2. 向量函数
      between
      case_when
      coalesce
      cumull cumany cumean
      desc
      if_else
      lead lag
      order_by
      n
      n_distinct
      na_if
      near
      nth first last
      row_number ntitle
      min_rank dense_rank
      percent_rank cum_dist
      recode recode_factor
    3. 元数据
      groups``groups_vars
    4. 数据集
      dplyr 包中包含乐队成员信息,NASA的空间数据,星际争霸人物特征,和风暴数据:
      band_instruments、band_instruments2 、band_members 、nasa 、starwars、storms

    扩展用法

    参考

    官方参考

    相关文章

      网友评论

          本文标题:R成精-用dplyr高效变换数据和处理数据

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