《R for Data Science》
常用的摘要函数
和summarize()
搭配使用
位置度量
# 前面用过mean() 求均值
# median() 求中位数
# 即50%的x大于它,同时50%的x小于它
# 举例
not_cancelled %>%
group_by(year,month,day) %>%
summarize(
avg_delay1=mean(arr_delay), # 平均延误时间
avg_delay2=mean(arr_delay[arr_delay>0]), # 平均正延误时间
avg_delay3=median(arr_delay[arr_delay>0]) # # 正延误时间中位数
)
# 有时候需要将聚合函数和逻辑筛选组合起来 (后面再讲)
分散程度度量
# 均方误差(又称标准误差,standard deviation,sd),衡量数据离散程度
# 四分位距IDR()和绝对中位差mad()基本等价,更适合有离群点的情况
# 为什么到某些目的地的距离比到其他目的地更多变?
not_cancelled %>%
group_by(dest) %>% # 按目的地分组
summarise(distance_sd=sd(distance)) %>%
arrange(desc(distance_sd))
秩的度量
# 分位数是中位数的扩展
# 例如,quantile(x,0.25)会找出x中按从小到大顺序位于25%位置的数字
x<-c(1:10)
quantile(x,0.25) # 25% 3.25
quantile(x,0.75) # 75% 7.75
# 最小值 min()
# 最大值 max()
# 每天最早和最晚的航班何时出发
not_cancelled %>%
group_by(year,month,day) %>%
summarize(
first = min(dep_time),
last = max(dep_time)
)
定位度量
# 取第一个first(x),作用等同于 x[1]
# 取第二个nth(x,2),作用等同于 x[2] ## 当然也可以是任意数字/位置
# 取最后一个last(x),作用等同于 x[length(x)]
# 它们的优势是当定位不存在时
# 例如,从只有两个元素的分组中得到第三个元素
# 它们允许你设置一个默认值
# 找出每日最早、最晚出发的航班
not_cancelled %>%
group_by(year,month,day) %>%
summarise(
first_dep=first(dep_time),
last_dep=last(dep_tim