Dplyr 包应用
1. 筛选 filter()
按照给定的逻辑判断选择出合适的数据子集
fliter(data,year==2015,month==1)
支持对同一对象的任意条件组合 fliter(data,year==2014|year==2015)
fliter(data,year==2014|year==2015,month==1&month==2)
2. 排序 arrange()
按指定的属性依次对所有行进行排序, arrange(data,year,month)
对排序属性加desc( ),按倒序排列 , arrange(data,desc(year,month))
3. 选择 select()
用列名作为参数选择子数据集
select(data,year,month,dayofweek)
用‘:’连接列名(类似于数字形式) select(data,year:dayofweek)
用‘-’删除列 select(data,-(year:month))
4. 去重 distinct ( )
去重 distinct (data[1:5,3:10]) ; distinct(select(data,year,month)
5. 变形 mutate()
对已有列进行算数运算,并作为新列添加到数据中,同时可以在同一语句中队新加的列进行操作。
mutate(data,newscore=(scoer1+score2)*scor3) ----newscore为新加入的列
mutate(data,newscore1=(scoer1+score2)*scor3,newsocre2=newscore1+score4)
----newscore1与newscore2为新加入的列
6. 分组 group_by()
对数据集添加分组信息,然后可以分别对各分组作用函数操作
newdata<-group_by(data,year) 按year对数据进行分组
datamean<-mean(newdata) 按照year分组后分别对每一组求平均
7. 函数结果汇总 summarise()
summarise(data,mean(scor1),sum(scor2))
summarise(group_by(data,year),mean(scor1),sum(scor2))
8. 连接符 %.%
用原始数据名作为开头,依次对数据进行操作,上一步操作的数据结果作为下一步操作应用的数据集
data%.%group_by(year)%.%summrise(newscore=mean(score))%.%arrange(desc(newscore))%.%head(5)
等价于head(arrange(summrise(newscore=mean(group_by(date,year))),desc(newscore)),5)