R for data Science(五)

summarise

这周介绍最后一个动词 summarise

该函数并没有什么实质性功能,我的理解就是相当于apply类的函数,对数据集进行包装函数处理,即数据集的函数放在summarise里面。要想体现出该函数的优势,要和group_by函数联合使用

group_by函数:是对数据集进行分组处理

by_day <- group_by(flights, year, month, day)表示先按照年,再按照月,最后按照日来排序
summarise(by_day, delay = mean(dep_delay, na.rm = TRUE))
就得到下面结果

管道工具 %>%

%>% R里面表示数据的传递

例如:

by_dest <- group_by(flights, dest)
delay <- summarise(by_dest,  count = n(),  dist = mean(distance, na.rm = TRUE), delay = mean(arr_delay, na.rm = TRUE))
delay <- filter(delay, count > 20, dest != "HNL")

如果我们使用管道工具,就是下面这样

delays <- flights %>%   
group_by(dest) %>% 
  summarise(    count = n(),    dist = mean(distance, na.rm = TRUE),    delay = mean(arr_delay, na.rm = TRUE)  ) %>%
   filter(count > 20, dest != "HNL")最初的数据源是flights ,则就开始从数据源开始进行向下延伸

挑出不含缺失值的小技巧

!is.na()

例如挑选 dep_delay这一列不含缺失值
not_cancelled <- flights %>%   filter(!is.na(dep_delay))
挑出两列不含缺失值的列
not_cancelled <- flights %>%   filter(!is.na(dep_delay), !is.na(arr_delay))
管道操作符,来画图
delays <- not_cancelled %>%  
 group_by(tailnum) %>%
   summarise(    delay = mean(arr_delay)  )
ggplot(data = delays, mapping = aes(x = delay)) +   geom_freqpoly(binwidth = 10)
delays <- not_cancelled %>%
   group_by(tailnum) %>%
   summarise(    delay = mean(arr_delay)  )%>%
 ggplot(mapping = aes(x = delay)) +   geom_freqpoly(binwidth = 10)
image

summarize里面还有一些常见的函数

median(x) 中位数

min(x) 最值

quantile(x, 0.25) 下四分位数

max(x) 最值

sd(x), 方差

IQR(x) 四分位差

mad(x) 平均绝对离差

总结

至此,dplyr包的函数,我们今天就讲解完毕,下面我们总结一下几大函数

filter 是对行的筛选
select 是对列的筛选
mutate 是产生新的变量
arrange 是排序 (desc 表倒序)
summarise 是函数总结 里面内置了像mean等常见的函数


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容