dplyr包介绍
dplyr
包是R大神大杰作,Hadley Wickham,被称为一个改变R的人,dplyr是在plyr上升级的又一力作。
dplyr包包含了数据整理、筛选、变换、汇总等多种函数。基本上可以解决数据处理的80%的问题。
基础用法
本文以自己构造的数据集进行演示,以便方便理解。
data1 <- data.frame(id=c(1:10),class=c(1:2),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
按条件分组
data1 %>% group_by(class) #按照class进行分组,在组内可以进行统计操作。
# A tibble: 10 x 5
# Groups: class [2]
id class score ennum type
<int> <dbl> <fctr> <fctr> <fctr>
1 1 1 十 one a
2 2 2 九 two b
3 3 1 八 three a
4 4 2 七 four b
5 5 1 六 five a
6 6 2 五 ten b
7 7 1 四 nine a
8 8 2 三 eight b
9 9 1 二 seven a
10 10 2 一 six b
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())
选取十行以后的数据
- 两个表操作
-
inner_join
内联
匹配两个表相同的内容,返回两个表都有的内容。 -
left_join
左表匹配右表,返回左表。 -
right_join
右表匹配左表,返回右表。 -
full_join
两表匹配,返回两个表的元素。 -
semi_join
返回能够与y表匹配的x表的所有记录。 -
anti_join
返回无法与y表匹配的x表的所有记录。
- 向量函数
between
介于两向量之间
case_when
coalesce
cumull cumany cumean
desc
降序排列
if_else
lead lag
向前和滞后
order_by
排序
n
观测值的数量
n_distinct
不同的观测值的数量
na_if
near
比较两组向量是否相等,等价于"=="
nth first last
向量中第n、第一、最后一个元素
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
网友评论