Advertisement

R语言——swirl包 学习dplyr包(二)

阅读量:

Grouping and Chaining with dplyr

分组函数

group_by函数
用处:对数据进行分组
用法:

复制代码
    >by_package <- group_by(cran,package) 
    >#cran是tbl变量名,后面可以放分组所依据的变量名
    >#打印结果看起来一样,只不过数据上方显示了Groups:   package  之后的操作都会一句分组变量来进行
    >#例如:summarise(by_package,mean(size))  则会根据分组计算每一组的平均值

函数 {dplyr包中的}
n():观测值的数目
n_distinct ():独一无二数值的数目

复制代码
    >pack_sum <- summarize(by_package,    #分组后的tbl数据
                      count =n() ,    #每个组的行数目
                      unique =n_distinct(ip_id) ,   #每个组中第一无二id的数目
                      countries = n_distinct(country), #每个组中第一无二country的数目
                      avg_bytes = mean(size)  # 分组计算平均值  )

quantile函数
作用:下分位数
用法:

复制代码
    >quantile(pack_sum$count, probs = 0.99) 
    >#看pack_sum中0.99分位数的水平是多少。count是各组的行数

View函数
作用:展示所有行的数据
用法:

复制代码
    >View(top_counts)

函数的嵌套 (与下一个形成一样的效果)

复制代码
    >result2 <-
      **arrange(**   #第四层函数
    ==filter(==   #第三层函数
      summarize(     #第二层函数
        group_by(cran,      #最内层的函数
                 package
        ),
        count = n(),
        unique = n_distinct(ip_id),
        countries = n_distinct(country),
        avg_bytes = mean(size)
      ),
      countries > 60
    ==)==,
    desc(countries),
    avg_bytes
      **)**
      Note: 内层函数的输出结果将作为内层函数的输入变量

print(result2)
% >% Chain链条
作用:一个符号,简化代码用的,相当于"then"
用法:

复制代码
    >result3 <-   #变量名,不必加括号
      cran %>%    首先输入一个变量cran,作为下一步的输入变量
      group_by(package) %>%    # 分组,**输出的结果将会用于下一个函数的输入变量(类似于then)**
      summarize(count = n(),  
            unique = n_distinct(ip_id),
            countries = n_distinct(country),
            avg_bytes = mean(size)
      ) %>%    #同理,其输入变量为上一步的结果,输入的变量将用做下一步的输出变量
      filter(countries > 60) %>%  #同理
      arrange(desc(countries), avg_bytes)   #同理
    print(result3)   #打印输出

以上内容来自使用swirl包学习tidyr包内容的个人总结

全部评论 (0)

还没有任何评论哟~