「R 语言数据科学」 系列课程将带领大家学习如何使用 R 语言进行数据处理、统计建模和图表绘制。该课程使用 Hadley Wickham 的 R for Data Science 作为参考资料并结合我们工作学习中的实际案例展开讲解,是入门 R 语言的不二之选。
与基础 R 语言不同,现代 R 语言的使用,特别是数据处理与可视化,主要是使用 tidyverse 系列的 R 包。tidyverse 系列的 R 包是指下面这些包:
tidyverse::tidyverse_packages()
|
这些包使用起来更加便捷,语法更加规范。例如你可以使用 readr 包读取数据、使用 tidyr 清理数据,使用 dplyr 操作数据,然后再使用 ggplot2 进行图表创作。下面这些示例可以让你一瞥 tidyverse 的美:
tibble
整洁的 tibble 数据框可以让你更好的审视你的数据:
as_tibble(iris) #> # A tibble: 150 x 5 #> Sepal.Length Sepal.Width Petal.Length Petal.Width Species #> <dbl> <dbl> <dbl> <dbl> <fct> #> 1 5.1 3.5 1.4 0.2 setosa #> 2 4.9 3 1.4 0.2 setosa #> 3 4.7 3.2 1.3 0.2 setosa #> 4 4.6 3.1 1.5 0.2 setosa #> 5 5 3.6 1.4 0.2 setosa #> 6 5.4 3.9 1.7 0.4 setosa #> 7 4.6 3.4 1.4 0.3 setosa #> 8 5 3.4 1.5 0.2 setosa #> 9 4.4 2.9 1.4 0.2 setosa #> 10 4.9 3.1 1.5 0.1 setosa #> # … with 140 more rows
|
ggplot2
使用 ggplot2 及其拓展包,你可以创建精美的统计图表:
library(tidyverse) library(ggridges) library(scales) library(hrbrthemes) library(paletteer)
read_csv('probly.csv') %>% mutate(variable = factor(variable, c("机会渺茫", "很不可能", "毫无机会", "机会不大", "不太确定", "不可能", "不太可能", "值得怀疑", "一半一半", "有点可能", "可能", "值得确定", "很可能", "大概率的可能", "非常有机会", "极有可能", "几乎确定"))) -> probly
ggplot(probly, aes(y = variable, x = value)) + geom_density_ridges(scale = 4, aes(fill = variable), alpha = 3/4) + scale_x_continuous(breaks = seq(0, 1, 0.1), labels = percent_format(accuracy = 1)) + guides(fill = F, color = F) + labs(title = "定性概率描述的定量分布", x = "概率值分配", y = "") + theme(plot.title = element_text(hjust = 0.5, size = 30)) + scale_fill_paletteer_d("awtools::bpalette") + theme_ipsum()
|

dplyr
使用 dplyr 你可以快捷的整理各种数据,例如:
有一个小伙伴提了个问题:他有 Q2 到 Q8 共 7 个变量。每个变量取值 1, 2, 3, 4。现在想把所有变量的 1 转成 100, 2 转成 80, 3 转成 60, 4 转成 0。显然这个问题可以使用 mutate_all 解决。
replace_fun <- function(x){ case_when( x == 1 ~ 100, x == 2 ~ 80, x == 3 ~ 60, T ~ 0 ) }
tibble( Q2 = sample(1:4, 4), Q3 = sample(1:4, 4), Q4 = sample(1:4, 4), Q5 = sample(1:4, 4), Q6 = sample(1:4, 4), Q7 = sample(1:4, 4), Q8 = sample(1:4, 4) ) %>% mutate_all(replace_fun)
tibble( Q2 = sample(1:4, 4), Q3 = sample(1:4, 4), Q4 = sample(1:4, 4), Q5 = sample(1:4, 4), Q6 = sample(1:4, 4), Q7 = sample(1:4, 4), Q8 = sample(1:4, 4) ) %>% mutate(across(everything(), ~replace_fun(.x)))
|
是不是觉得这些代码整洁又漂亮!篇幅有限就不再列举更多的示例了,快加入该系列课程学习吧!
点击这里跳转到 RStata 短书平台获取附件:R 语言数据科学(2022 版)
评论