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包内容的个人总结


版权声明:本文为weixin_42320042原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。