「r<-workshop」第二期:程序控制与数据操作流
2020-05-28 本文已影响0人
王诗翔
推荐图书
- 《R for Data Science》
- 《R 语言编程指南》
- 《R 实战》
- 其他推荐见:https://shixiangwang.gitee.io/geek-r-tutorial/expand-reading.html
R 编程基础
内容:
- 基础语法
- 控制与循环结构
- 函数与包
- 数据读取和保存
-
read.*与write.* -
load与save -
readRDS与saveRDS
-
数据操作流程
- 放本小抄在身边,随时查阅
Tidyverse
-
数据导入
read_* -
管道
%>%-
x %>% f(y)>f(x, y)
-
-
筛选
- 行筛选
slice,filter,sample_n,sample_frac,top_n,distinct - 列筛选
selectcontainsnum_rangestarts_withends_withone_ofmatches
- 排序
arrange
- 行筛选
-
行列增加/更新
-
mutate,transmute mutate_add_rowadd_columnrename-
rownames_to_column,column_to_rowname - 向量化函数
- 基本的数学和比较逻辑运算符
+ - * / > < == - 偏移
dplyr::laglead - 聚合
dplyr::cumallcumanycummaxcummeancummincumprodcumsum - 排序
dplyr::cume_distdense_rankmin_rankntilepercent_rankrow_number - 其他
dplyr::betweencase_whencoalesceif_elsena_ifpmaxpminrecoderecode_factor
- 基本的数学和比较逻辑运算符
-
-
汇总
- 简单汇总
countsummarize
- 分组汇总
group_by,ungroup - 汇总函数
- 计数
dplyr::nn_distinctbase::sum(!is.na()) - 位置
mean,meadian - 逻辑值
mean,sum - 位置
dplyr::firstlastnth - 排序
quantileminmax - 分布
IQRmadsdvar
- 计数
- 简单汇总
-
合并
bind_rowsbind_colssemi_joinanti_join-
left_join,right_join,inner_join,full_join intersectsetdiffunion-
setequal辅助查看两个数据集是否相同(不管行序)
-
变异动词 (
_at,_if,_all)filter_*select_*summarize_*arrange_*- ...
-
字符处理
substr-
stringr包与正则表达式略微复杂,可以单独讲一次
-
转换 tidyr
-
Tidy 数据格式
-
tibble -
tribble,enframe -
as_tibble,is_tibble
-
-
缺失值
drop_nafillreplace_na
-
长转宽
pivot_wider,spread
- 宽转长
pivot_longer,gather
-
拓展表格
expandcomplete
-
分割和连接
separateseparate_rowsunite
-
数据导出
write_*
data.table 与 base
- 数据导入
fread - 数据导出
fwrite - data.table 语法
dt[i, j, by] - 数据过滤与合并等操作与 R 基础语法一致,也可以使用 tidyverse 处理
- 整数索引
- 逻辑索引
- 命名索引
- 进一步的学习参考小抄、文档和《R 语言编程指南》
后几期主题
本期未讲述的内容???
- 正则表达式与字符串处理:
base与stringr - 列表处理与迭代计算:
purrr - 统计建模:
stats与broom - 绘图:
graphics与ggplot2 - 函数编程:
apply家族和purrr等
开发:
- devtools
- usethis
- testthat
- roxygen2 与 roxytest