Professional Documents
Culture Documents
Data-Transformation ZH CN
Data-Transformation ZH CN
Data-Transformation ZH CN
dplyr
dplyr 函数可应⽤用于“pipes”结构,使⽤用前请保证数据是清洁的,清洁
的数据应具有以下特征:
对案例例的操作 对变量量的操作
A B C A B C
确定选取案例例的百分⽐比)。
描述总结性函数 sample_frac(iris, 0.5, replace = TRUE) select ()函数的详细⽤用法如下:
summarise(.data, …)
⽣生成对数据进⾏行行描述性总结的表格。
w
www
ww sample_n(tbl, size, replace = FALSE, weight =
NULL, .env = parent.frame()) 任意选取⼏几⾏行行(输⼊入整数
e.g. select(iris, starts_with("Sepal"))
contains(match) num_range(prefix, range) :, e.g. mpg:cyl
w
ww summarise(mtcars, avg = mean(mpg))
count(x, ..., wt = NULL, sort = FALSE)
确定选取⼏几⾏行行案例例)。
sample_n(iris, 10, replace = TRUE)
ends_with(match)
matches(match)
one_of(…)
starts_with(match)
-, e.g, -Species
group_by() 函数能够创建⼀一份“被分组”的表格。
dplyr 函数能对每组数据进⾏行行分别处理理,然后整合结果。
w
ww 创建新列列,删除其他列列。
transmute(mtcars, gpm = 1/mpg)
mutate_all(.tbl, .funs, …) 将函数⽤用于所有列列,
为案例例排序 和 funs() 函数⼀一起使⽤用,也写作 mutate_if()
mtcars %>%
arrange(.data, …) 按照⼀一列列或多列列数据的值对案
例例进⾏行行排序(由低到⾼高)。如要由⾼高到低排序,使
w
www mutate_all(faithful, funs(log(.), log2(.)))
mutate_if(iris, is.numeric, funs(log(.)))
w
www
ww group_by(cyl) %>%
w
www
ww ⽤用desc()。 mutate_at(.tbl, .cols, .funs, …) 将函数⽤用于特定
列列,和 funs(), vars() 函数及select()函数的辅助
w
arrange(mtcars, mpg)
ww
summarise(avg = mean(mpg)) arrange(mtcars, desc(mpg)) 函数(helper functions)⼀一起使⽤用。
mutate_at(iris, vars( -Species), funs(log(.)))
group_by(.data, ..., add = ungroup(x, …) 增加案例例 add_column(.data, ..., .before = NULL, .after =
FALSE) 这⼀一函数能够返回⼀一份被取 NULL)增加新列列,另有 add_count()和
这⼀一函数能够返回⼀一份被分
w
www
ww
add_row(.data, ..., .before = NULL, .after = NULL)
消分组的表格。 add_tally().
组的表格 。 在表格内增添⼀一个或多个案例例。
w
www
ww
ungroup(g_iris) add_column(mtcars, new = 1:32)
g_iris <- group_by(iris, add_row(faithful, eruptions = 1, waiting = 1)
Species)
rename(.data, …) 重命名列列。
w
wwww rename(iris, Length = Sepal.Length)
RStudio® 是 RStudio, Inc. 的注册商标 • CC BY SA RStudio • info@rstudio.com • 844-448-1212 • rstudio.com • 更更多内容请关注 browseVignettes(package = c("dplyr", "tibble")) • dplyr 0.7.0 • tibble 1.2.0 • 更更新于:2017-03
翻译:于艾岑 Aicen Yu / aerzen@outlook.com
向量量函数 ⽣生成描述性数据的函数 合并表格
与MUTATE () ⼀一起使⽤用 与SUMMARISE ()⼀一起使⽤用 基于变量量的合并 基于案例例的合并
dplyr
x y
mutate() 和 transmute() 将向量量函数作⽤用于列列, summarise() 对每列列数据进⾏行行描述性总结,形成
以创造新的列列。向量量函数输⼊入的是向量量,返回的 ⼀一张新表格。总结性函数输⼊入向量量,返回单个数
A B C A B D A B C A B D A B C
是与输出等⻓长的向量量。 值。
a
b
c
t
u
v
1
2
3
+ a
b
d
t
u
w
3
2
1
= a
b
c
t
u
v
1
2
3
a
b
d
t
u
w
3
2
1 x
a
b
c
t
u
v
1
2
3
向量量函数 A B C
描述总结性函数 + C v 3
bind_cols() 将两个表格肩并肩放置。 y d w 4
其他
a t 1 t 3
b u 2 u 2
匹配所⽤用的共同列列。
left_join(x, y, by = "A")
a
b
t
u
1
2 + a
b
t
u
3
2 =
⾏行行名 c v 3 NA N c v 3 d w 1
dplyr::case_when() - 同 if_else(),但能处理理多个案例例
dplyr::coalesce() - 寻找第⼀一个⾮非NA的值 ⽤用 by = c("col1" = "col2"), 来指明共
dplyr::if_else() - 基于元素的 if() + else() 清洁的数据不不使⽤用⾏行行名,因其将变量量置于列列外。 “筛选合并" 能⽤用⼀一组数据筛选另⼀一组数据。
如果要编辑⾏行行名,需先将其移到⼀一列列内。
A. B. C A. B.
同列列在不不同表格中的不不同名称。
dplyr::na_if() - ⽤用 NA 取代特定值 a t 1 d w
b u 2 b u left_join(x, y, by = c("C" = "D"))
pmax() - 基于元素的 max() C A B c v 3 a t A B C semi_join(x, y, by = NULL, …)
pmin() - 基于元素的 min() A B rownames_to_column() a t 1 返回 x 的⾏行行中与 y 中的⾏行行相同的部分。※
dplyr::recode() - 向量量版本的 switch()
1 a t 1 a t
将⾏行行名移到⼀一列列内。 ⽤用suffix = c("1", “2")为在不不同表格中
b u 2
可⽤用来查看哪些能被合并。
2 b u 2 b u
dplyr::recode_factor() - 向量量版本的 switch() ,⽤用于 3 c v 3 c v a <- rownames_to_column(iris, var = 名称相同却不不匹配的列列设定后缀。
"C") A1 B1 C A2 B2 left_join(x, y, by = c("C" = "D"), suffix anti_join(x, y, by = NULL, …)
因⼦子 a t 1 d w 返回y中没有的、 x中的⾏行行。
= c("1", "2")) A B C
A B C A B column_to_rownames() b u 2 b u c v 3
※ 可⽤用来查看哪些不不能被合并。
将⼀一列列移到⾏行行名处。
1 a t 1 a t c v 3 a t
2 b u 2 b u
3 c v 3 c v column_to_rownames(a, var = "C")
RStudio® 是 RStudio, Inc. 的注册商标 • CC BY SA RStudio • info@rstudio.com • 844-448-1212 • rstudio.com • 更更多内容请关注 browseVignettes(package = c("dplyr", "tibble")) • dplyr 0.7.0 • tibble 1.2.0 • 更更新于:2017-03
翻译:于艾岑 Aicen Yu / aerzen@outlook.com