新版本在这里:https://rstata.duanshu.com/#/brief/course/5b5504c55ce744a28a7282e70f3c6c0d
R 4.1.0 版本新增了 |> 操作符,该操作符的功能类似 %>%,但是又有所不同,另外速度更快了。
R 和 RStudio 的安装是非常简单的,这里提供一些安装 Tips。在文章的最后我还通过一个案例带大家走进奇幻的 R 世界。
安装 R
下载页面:https://mirrors.tuna.tsinghua.edu.cn/CRAN/
我安装的 R 语言是 r version$version.string,该发行版的名字是 r version$nickname(不是最新版的)。
如果你已经安装了 R 和 RStudio,可以运行下面的语句查看自己 R 版本的版本名称:
# 查看自己 R 版本 version$version.string #> [1] "R version 4.1.0 (2021-05-18)"
# 查看自己 R 版本的名称 version$nickname #> [1] "Camp Pontanezen"
|
根据自己的版本点击下面的链接即可直接下载 R 软件了(使用迅雷下载会很快):
Mac 系统: https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/macosx/base/R-4.1.0.pkg
Windows 系统:https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/windows/base/R-4.1.0-win.exe
下载好之后一路安装即可。(如果你的电脑(Windows系统)是 32 位的,注意选择 32 位的安装)。
注意安装路径中不要有中文文件夹。
Windows 用户:安装 Rtools:Windows 构建工具(Mac 用户请跳过)
只有 Windows 用户需要安装这个工具:https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/windows/Rtools/rtools40v2-x86_64.exe
如果你的电脑是 32 位的,下载这个安装:https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/windows/Rtools/rtools40-i686.exe
安装完成之后还需要进行环境变量的配置,稍后我再介绍。
Mac 用户:安装 XQuartz 和 homebrew(Windows 用户请跳过)
下载安装 XQuartz
下载链接:https://github.com/XQuartz/XQuartz/releases/download/XQuartz-2.8.1/XQuartz-2.8.1.dmg
可以使用迅雷下载,另外附件中也提供了下载好的安装文件。
下载完之后记得安装!
安装 homebrew (如果实在安装不上,可以跳过)
打开终端(Terminal)输入如下命令安装 homebrew:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
|
运行过程中根据提示操作即可,完成之后重启下终端。
安装 Xcode 工具
打开终端(Terminal)输入如下命令安装 Xcode:
安装 pkg-config 和 gdal(一些 R 包的依赖,在终端运行)
打开终端(Terminal)输入如下命令安装 pkg-config 和 gdal(一些 R 包的依赖,在终端运行):
brew install pkg-config brew install gdal
|
安装 RStudio Desktop(用迅雷下载会很快)
下载页面:https://rstudio.com/products/rstudio/download/
最新版的 RStudio(稳定版)是 1.4.1106 版本的,各个系统的下载链接为(这个建议使用迅雷下载):
- Windows 系统:https://download1.rstudio.org/desktop/windows/RStudio-1.4.1106.exe
- Mac 系统:https://download1.rstudio.org/desktop/macos/RStudio-1.4.1106.dmg
注意安装路径中不要有中文文件夹。
注意
一定要先安装 R 再安装 RStudio!
安装常用的一些 R 包
可以运行下面的几句命令快速的安装一些 R 包,如果第一次安装失败,可以尝试把 dependencies = TRUE 参数删除重新运行一次试试。
为了安装包更快些,我们可以把镜像源设置成国内的:点击 RStudio 界面上的 Tools -> Global Options -> Packages -> Change… 然后选择清华镜像源:
| 选择清华镜像源 |
 |
然后 OK。
另外还可以在 General 里面设置默认的工作目录(这样之后每次 RStudio 打开的工作目录都会是这个文件夹):
| 另外还可以在 General 里面设置默认的工作目录(这样之后每次 RStudio 打开的工作目录都会是这个文件夹) |
 |
在 Code -> Saving 界面设置默认文本编码为 UTF-8:
| 在 Code -> Saving 界面设置默认文本编码为 UTF-8 |
 |
下面我们开始安装 R 包:
安装 usethis 包:
# 安装 usethis install.packages("usethis")
|
安装的过程中注意阅读代码的反馈信息,例如我安装的时候就遇到了下面的错误:
Warning in install.packages : downloaded length 32768 != reported length 503020 Warning in install.packages : URL 'https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/macosx/contrib/4.1/httr_1.4.2.tgz': Timeout of 60 seconds was reached Error in download.file(url, destfile, method, mode = "wb", ...) : download from 'https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/macosx/contrib/4.1/httr_1.4.2.tgz' failed Warning in install.packages : download of package ‘httr’ failed
|
显然这个是 httr 包安装失败了,我们再试试安装 httr:
配置 Rtools(仅 Windows 用户需要,Mac 用户请跳过)。
首先打开 RStudio Desktop:
usethis::edit_r_environ()
PATH="${RTOOLS40_HOME}\usr\bin;${PATH}"
|
随后按 Ctrl + S 保存(Mac 电脑是 Cmd + S),然后重启 RStudio。
有些 Windows 小伙伴的电脑用户名是中文的,这种情况下往往会出现中文乱码的错误,这个时候建议尽早重装电脑系统然后给电脑设置个英文的用户名,另外一种临时的解决办法是使用下面的代码替代上面的 usethis::edit_r_environ():
# 运行 file.edit("~/.Renviron")
# 在打开的 .Renviron 文件中输入下面的代码(注意不需要运行): PATH="${RTOOLS40_HOME}\usr\bin;${PATH}"
|
随后按 Ctrl + S 保存(Mac 电脑是 Cmd + S),然后重启 RStudio。如果依然不行就只能建议重装系统了。
可以检查 make 命令的位置来检查上述配置是否成功:
Sys.which("make") ## "C:\\rtools40\\usr\\bin\\make.exe"
|
如果没有问题,可以试试安装:
install.packages("jsonlite", type = "source")
|
如果安装成功了就说明配置成功了。
下面我们继续安装一些 R 包,部分包如果安装失败可以直接跳过,以后需要的时候再安装。安装过程中如果弹出对话框让选择是否,一律选择否或者 No:
install.packages("devtools")
install.packages("tidyverse", dependencies = TRUE)
install.packages("tinytex", dependencies = TRUE)
tinytex::install_tinytex()
install.packages("rticles", dependencies = TRUE) install.packages("xaringan", dependencies = TRUE)
install.packages("shiny", dependencies = TRUE)
install.packages("sf", dependencies = TRUE) install.packages("hrbrthemes", dependencies = TRUE) install.packages('patchwork', dependencies = TRUE) install.packages('manipulateWidget', dependencies = TRUE) install.packages('ggthemes', dependencies = TRUE) install.packages('tidyquant', dependencies = TRUE) install.packages('rvest', dependencies = TRUE) install.packages('DT', dependencies = TRUE) install.packages("basetheme", dependencies = TRUE) install.packages("pacman", dependencies = TRUE) install.packages('corrplot', dependencies = TRUE) install.packages('formattable', dependencies = TRUE) install.packages('paletteer') install.packages('reprex')
install.packages('https://mdniceczx.oss-cn-beijing.aliyuncs.com/ggchicklet_0.5.2.tar.gz', type = "source", repos = NULL) install.packages('https://mdniceczx.oss-cn-beijing.aliyuncs.com/awtools_0.2.1.tar.gz', type = "source", repos = NULL) install.packages('https://mdniceczx.oss-cn-beijing.aliyuncs.com/ggrapid_0.0.1.0.tar.gz', type = "source", repos = NULL)
|
用一段时间之后你的电脑上就会安装一大堆 R 包,例如我电脑上安装的 R 包有 1905 个(截止 2020年7月10号)。
library(tidyverse) installed.packages() %>% as_tibble() %>% count() %>% pull() %>% paste("该电脑一共有", ., "个 R 包!") %>% message()
|
安装字体
附件中有个 font 文件夹,里面存放了一些字体安装文件。
全选所有的字体文件,然后右键选择安装即可。
设置 R Profile
设置 R Profile 是把自己经常用到的代码放到 .Profile 文件里面,这样在 RStudio 启动的时候这些代码就会自动运行,很方便。
创建 R Profile 文件可以使用:
usethis::edit_r_profile()
|
类似,有些 Windows 小伙伴的电脑用户名是中文的,这种情况下往往会出现中文乱码的错误,这个时候建议尽早重装电脑系统然后给电脑设置个英文的用户名,另外一种临时的解决办法是使用下面的代码替代上面的 usethis::edit_r_profile():
# 运行 file.edit("~/.Rprofile")
|
如果仍然无法解决可以重装系统或者跳过 Profile 的设置,之后如果遇到课程里面的代码里出现 cnfont、enfont 之类的可以删除相关参数。
运行之后自动会打开一个文件,在里面输入你想要在 R 启动的时候自动运行的代码即可,可以参考我的:
注意如果字体设置没有生效可以重启下 RStudio 再试试。
Windows 系统:
pacman::p_load(ggplot2, dplyr, RColorBrewer, hrbrthemes, grDevices)
windowsFonts( enfont = windowsFont("Cascadia Code"), cnfont = windowsFont("思源宋体") ) enfont = "enfont" cnfont = "cnfont"
theme_set(theme_ipsum(base_family = 'cnfont'))
library(basetheme) pars <- basetheme("default") pars$palette <- c("#2A363B", "#019875", "#99B898", "#FECEA8", "#FF847C", "#E84A5F", "#C0392B", "#96281B") pars$bg <- "white" pars$fg <- "gray20" pars$col <- "gray20" pars$col.main <- "black" pars$col.axis <- "gray20" pars$col.lab <- "gray20" pars$family <- "cnfont" pars$lab <- c(10, 10, 7) pars$cex.axis <- 0.8 pars$las <- 0 pars$rect.border <- "black" pars$rect.lwd <- 4 basetheme(pars)
options(scipen = 1)
options( ggplot2.continuous.colour = "viridis", ggplot2.continuous.fill = "viridis" )
|
Mac 系统参考:
pacman::p_load(ggplot2, dplyr, RColorBrewer, hrbrthemes) print("已加载 ggplot2、dplyr、hrbrthemes 和 RColorBrewer!")
enfont = "CascadiaCode-Regular" cnfont = "SourceHanSerifSC-Medium"
theme_set(theme_ipsum(base_family = cnfont)) print("已 ggplot2 绘图主题为 theme_ipsum()!")
library(basetheme) pars <- basetheme("default") pars$palette <- c("#2A363B", "#019875", "#99B898", "#FECEA8", "#FF847C", "#E84A5F", "#C0392B", "#96281B") pars$bg <- "white" pars$fg <- "gray20" pars$col <- "gray20" pars$col.main <- "black" pars$col.axis <- "gray20" pars$col.lab <- "gray20" pars$family <- cnfont pars$lab <- c(10,10,7) pars$cex.axis <- 0.8 pars$las <- 0 pars$rect.border <- "black" pars$rect.lwd <- 4 basetheme(pars)
options(scipen = 1)
options( ggplot2.continuous.colour = "viridis", ggplot2.continuous.fill = "viridis" )
|
注意上面的 pars$family <- cnfont 里面的字体应该使用你设置好的字体。
这样设定好之后再重启 R 即可生效。
基于这种设定,使用 R 基础绘图系统绘图的结果将会是这样的:
| base R |
 |
使用 ggplot2 绘图的结果是这样的:
library(ggplot2) ggplot(iris) + geom_col(aes(x = Sepal.Length, y = Sepal.Width, fill = Species, color = Species)) + tidyquant::scale_fill_tq() + tidyquant::scale_color_tq()
|
| ggplot2 |
 |
设置 RStudio 的样式
我比较喜欢暗黑一些的样式,在 Console 运行下面的代码即可更换为我推荐的主题:Yule-RStudio
rstudioapi::addTheme("https://mdniceczx.oss-cn-beijing.aliyuncs.com/Yule-RStudio.rstheme", apply = TRUE, force = TRUE)
|
这个主题是这样的:
| Yule RStudio 主题 |
 |
一个小的练习:爬取 CRAN 上的所有 R 包的名称、发布日期和标题
大家可以先不用急着理解下面的代码。只想想通过下面的案例让大家感受 R 语言的语法逻辑和绘图的精美。
可以爬清华镜像源的列表:https://mirrors.tuna.tsinghua.edu.cn/CRAN/web/packages/available_packages_by_date.html
显然,这是个表格,很容易爬取:
library(rvest) library(tidyverse)
library(lubridate) library(hrbrthemes)
pkg <- "https://mirrors.tuna.tsinghua.edu.cn/CRAN/web/packages/available_packages_by_date.html" %>% read_html() %>% html_table() %>% .[[1]] %>% as_tibble() %>% mutate( Date = ymd(Date), Year = year(Date), Month = month(Date) )
library(ggchicklet) pkg %>% subset(Year > 2013) %>% group_by(Year, Month) %>% count() %>% ggplot(aes(x = factor(Year), y = n)) + geom_chicklet(aes(fill = factor(Month)), width = 0.75, radius = grid::unit(3, "pt")) + theme_ipsum(base_family = cnfont, grid = "X") + coord_flip() + scale_fill_manual(name = "Month", values = c("#4E79A7FF", "#A0CBE8FF", "#F28E2BFF", "#FFBE7DFF", "#59A14FFF", "#8CD17DFF", "#B6992DFF", "#F1CE63FF", "#499894FF", "#86BCB6FF", "#E15759FF", "#FF9D9AFF"), breaks = 1:12, labels = month.name) + theme(axis.text.x = element_text(color = "gray60", size = 10)) + theme(legend.position = "right") + guides(fill = guide_legend(ncol = 1)) + labs( title = "CRAN 上 R 包的数量", subtitle = "绘制:微信公众号 RStata", caption = "数据来源:CRAN: \nhttps://mirrors.tuna.tsinghua.edu.cn/CRAN/", x = "", y = "")
|
| 每年每月 CRAN 上 R 包的数量 |
 |
按年统计:
pkg %>% subset(Year > 2013) %>% group_by(Year) %>% count() %>% ggplot() + geom_chicklet(aes(x = factor(Year), y = n, fill = factor(Year))) + geom_label(aes(x = factor(Year), y = n + 300, label = n), family = enfont, color = '#444444', label.size = 0, size = 3) + scale_fill_manual(values = c("#4E79A7FF", "#A0CBE8FF", "#F28E2BFF", "#FFBE7DFF", "#59A14FFF", "#8CD17DFF", "#B6992DFF", "#F1CE63FF")) + theme_ipsum(base_family = cnfont) + theme(legend.position = "none") + labs( title = "CRAN 上 R 包的数量", subtitle = "绘制:微信公众号 RStata", caption = "数据来源:CRAN: \nhttps://mirrors.tuna.tsinghua.edu.cn/CRAN/", x = "", y = "")
|
| 每年CRAN 上 R 包的数量 |
 |
可以看到,今年截止到今天,CRAN 上一共有 17636 个 R 包,今年新发布的 + 更新的有 4905 个!
使用 hotkeys 包设置输入快捷键
R 语言中经常会使用 %>%、->、<- 等符号,为了输入的更快,我们编写了一些小 R 包用来设置输入快捷键,可以使用下面的方法安装:
devtools::install_github('r-stata/hotkeys')
devtools::install_local('hotkeys_0.2.0.tar.gz')
|
然后就可以从 RStudio 界面上点击 Tools -> Modify Keyboard Shortcuts 进入快捷键设置界面,输入 insert 找到输入类快捷键的设置:
| 快捷键设置 |
 |
然后就可以设置自己喜欢的快捷键了。例如 %>% 设置为 Ctrl + Shift + M、|> 的快捷键设置成 Ctrl + Shift + . 等等。
点击这里跳转到 RStata 短书平台获取附件:旧版本|R 语言和 RStudio 的安装、R Profile 的配置及初识 R 语言数据爬取与可视化
评论