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版权协议,转载请附上原文出处链接和本声明。