dplyr包介绍
dplyr
包是R大神大杰作,Hadley Wickham,被称为一个改变R的人,dplyr是在plyr上升级的又一力作。
dplyr包包含了数据整理、筛选、变换、汇总等多种函数。基本上可以解决数据处理的80%的问题。
基础用法
本文以自己构造的数据集进行演示,以便方便理解。
data1 <- data.frame(id=c(1:10),class=c(15:6),score=c("十","九","八","七","六","五","四","三","二","一"),ennum=c("one","two","three","four","five","ten","nine","eight","seven","six"),type=c("a","b"))
data2 <- rbind(data1,c(10,6,"一","six","b"))
- 单表操作
- 排序
arrange
对变量进行排序,默认为升序,可以用desc()降序排列.
data1 %>% arrange()
data1 %>% arrange(desc(id))
data1 %>% arrange(by=class)
- 去重
distinct
,相当于base函数的unique,该函数有一个.keep_all的参数,如果等于FALSE,输出去重的变量。如果等于TRUE,输出全部变量,有多个相同的观测数据,输出第一条数据。
data2 %>% distinct()
data2 %>% distinct(type)
type
1 a
2 b
data2 %>% distinct(type,.keep_all=TRUE)
id class score ennum type
1 1 15 十 one a
2 2 14 九 two b
do
- 条件筛选
filter
,根据条件变量筛选观察值。
常用的筛选条件
==, >, >= etc
&, |, !, xor()
is.na()
between(), near()
data2 %>%filter(id==10)
id class score ennum type
1 10 6 一 six b
2 10 6 一 six b
等价于
data2[id==10,]
-
group_by
ungroup
-
mutate
transmute
-
select
rename
-
current_vars
-starts_with
end_with
-
contains
matches
-
num_range
one_of
everything
-
sample_n
sample_frac
-
summarise
summarize
- 拉取一列变量
pull
pull(data,var=-1)
data是数据集,var为空时默认拉取最后一列,var为正时从左边开始的列,var为负数从右边开始的列。 - 根据位置选取观测值
slice
slice(data1,10:n())
选取十行以后的数据
- 两个表操作
- 向量函数
between
case_when
coalesce
cumull cumany cumean
desc
if_else
lead lag
order_by
n
n_distinct
na_if
near
nth first last
row_number ntitle
min_rank dense_rank
percent_rank cum_dist
recode recode_factor
- 元数据
groups``groups_vars
- 数据集
dplyr
包中包含乐队成员信息,NASA的空间数据,星际争霸人物特征,和风暴数据:
band_instruments、band_instruments2 、band_members 、nasa 、starwars、storms
网友评论