前言

你好,这里是四川师范大学研究生公选课《数据科学中的R语言》的课程内容。考虑到大家来自不同的学院,有着不同的学科背景,因此讲授的内容不会太深奥(要有信心喔)。

比如在课程中以下内容就不会出现

\[ f(x)=\frac{1}{\sqrt{2 \pi}} e^{-\frac{1}{2} x^{2}} \]

而出现更多的是

library(tidyverse)
summary_monthly_temp <- weather %>% 
  group_by(month) %>% 
  summarize(mean = mean(temp), 
            std_dev = sd(temp))

跟进本课程的同时, 我强烈推荐大家阅读Hadley Wickham的 r4ds这本书 (Grolemund and Wickham 2017)。作者可是2019年8月刚刚获得考普斯总统奖(被誉为统计学的诺贝尔奖)的大神喔,点击这里可以看他照片。

关于课程

1、课程安排是这样的,每个章节研究的内容都是彼此独立的,大家可以单独阅读每章及运行代码。

  • 基础篇
    • 1 章介绍数据科学基础
    • 2 章介绍R语言基本概念
    • 3 章介绍R语言中的子集选取
  • tidyverse篇
    • 4 章介绍可重复性报告
    • 5 章介绍数据读入
    • 6 章介绍数据处理
    • 7 章介绍数据可视化
    • 8 章介绍数据规整
    • 9 章介绍字符串处理
    • 10 章介绍因子类型数据
    • 11 章介绍函数式编程
    • 12 章介绍简单数据框
    • 13 章ggplot2几何对象
    • 14 章ggplot2的主题
    • 15 章ggplot2的标度
    • 16 章ggplot2的图例
    • 17 章ggplot2扩展内容
    • 18 章回望tidyverse之旅
    • 19 章介绍tidyverse常用技巧
    • 20 章介绍tidyverse进阶技巧
    • 21 章介绍数据框的列方向和行方向
    • 22 章介绍tidyverse中的dot
    • 23 章介绍非标准性评估
  • 建模篇
    • 24 章介绍模拟与抽样
    • 25 章介绍线性模型
    • 26 章介绍模型输出结果的规整
    • 27 章介绍方差分析
    • 28 章介绍统计检验与线性模型的等价性
    • 29 章介绍多层线性模型
    • 30 章介绍广义线性模型
    • 31 章介绍有序logistic回归模型
    • 32 章介绍机器学习
  • 应用篇
    • 33 章介绍探索性数据分析-诺奖获得者
    • 34 章介绍探索性数据分析-奥林匹克
    • 35 章介绍探索性数据分析-新冠疫情
    • 36 章介绍探索性数据分析-anscombe数据集
    • 37 章介绍探索性数据分析-身高体重
    • 38 章介绍探索性数据分析-驯鹿迁移
    • 39 章介绍探索性数据分析-企鹅的故事
    • 40 章介绍网页爬虫
    • 41 章介绍社会网络分析
    • 42 章介绍文本挖掘
    • 43 章介绍时间序列分析
    • 44 章介绍地理数据处理
    • 45 章介绍tidyverse中行方向的操作
    • 46 章介绍科研数据可视化中的统计分布图
    • 47 章介绍数据可视化中的配色
    • 48 章让你的数据骚动起来
    • 49 章介绍我收集的一些有用和有趣的宏包

2、课件源代码和数据

我将持续改进课件,所以欢迎大家提出建议

3、课程视频

  • 部分课程视频放在bilibili网站

4、关于课程目标

  • 课程目标: 熟悉数据科学流程,掌握统计编程技能,能运用探索性分析方法,解决基本的实际应用问题,做到学以致用,不是 learning R,而是 learning with R

  • 授课方式:

    • 边写代码边讲
    • 通过案例式、问题式的方法,增强参与感和目标感
  • 课堂要求

    • 自带电脑,配好运行环境
    • 光看李小龙的电影,是学不会功夫的
  • 知识脚手架

    • 知识脚手架,我个人比较喜欢这个比喻。在教育中,各种知识或技巧就好比建房子用的脚手架,它帮助我们加深理解,逐渐获得独立自主学习的能力。

5、关于如何提问

有的同学,这样一上来就问:老师,我的代码怎么运行不出来呢?或者图省事,干脆手机拍个照片一发。

  • 我想说,要想获得快速的帮助,在问问题之前,请先告诉对方三个信息:
    • 想解决的问题是什么?
    • 代码是什么?
    • 报错信息是什么?

课件中用到的宏包

my_packages <- 
   c("brms", "broom", "broom.mixed", "colorspace", "corrr", "countrycode", "cowplot", "cranlogs", "datapasta", "datasauRus", "devtools", "dplyr", "equatiomatic", "forcats", "gapminder", "geoshpere", "gganimate", "ggbeeswarm", "ggeffects", "ggforce", "gghighlight", "ggimage", "ggplot2", "ggpubr", "ggraph", "ggrepel", "ggridges", "ggstatsplot", "ggtext", "ggthemes", "gt", "gtsummary", "haven", "here", "janitor", "knitr", "latex2exp", "lme4", "lubridate", "maps", "margins", "MASS", "modelr", "naniar", "nycflights13", "ordinal", "pacman", "pacman", "paletteer", "palmerpenguins", "patchwork", "performance", "purrr", "readr", "readxl", "remotes", "reprex", "rlang", "rmarkdown", "rstan", "rvest", "scales", "sf", "shadowtext", "showtext", "slider", "stars", "statsExpressions", "stringr", "styler", "tibble", "tibbletime", "tidybayes", "tidygraph", "tidymodels", "tidyr", "tidytext", "tidyverse", "tinytex", "viridis", "visdat")
install.packages(my_packages, repos = "http://cran.rstudio.com", dependencies = T)

可能用到的开发版本的宏包

#remotes::install_github("datalorax/equatiomatic")
devtools::install_github("easystats/report")
devtools::install_github("kassambara/navdata")
devtools::install_github('cttobin/ggthemr')
remotes::install_github("daranzolin/inferregex")
devtools::install_github("EmilHvitfeldt/gganonymize")
remotes::install_github("ThinkR-open/remedy") 
remotes::install_git("https://git.rud.is/hrbrmstr/hrbraddins.git") 
devtools::install_github("hadley/emo") 
remotes::install_github("romainfrancois/lay")
remotes::install_github("kjhealy/covdata")

RYouWithMe

致谢

非常感谢川师研究生院的信任,有了您的支持,才会有更多的川师学子了解R的美!

王敏杰
于 川师图书馆某角落

参考文献

Grolemund, Garrett, and Hadley Wickham. 2017. R for Data Science: Import, Tidy, Transform, Visualize, and Model Data. 1 edition. Houston: O’Reilly Media. http://r4ds.had.co.nz/.