R语言入门
本文最后更新于:2023年4月16日 晚上
R语言简介
1992年由Ross Ihaka 和 Robert Gentleman发明,因此叫做R语言
R的特点:
- 一个专注于统计分析、制图的语言
- 免费、开源
- 适用于多个系统(Windows、macOS、Linux)
- 有丰富的库
- 社区活跃
安装&环境配置
安装R语言
以Windows为例
- 在https://cloud.r-project.org/下载R语言
- 使用R studio或者vscode作为ide
- 使用
install.packages("tidyverse")
语句安装宏包。其中,tydyverse是一个宏包 - 配置环境变量,使得命令行可以识别R.exe
在vscode中配置R语言环境
安装拓展:
- R 扩展:提供了 R 语言的语法高亮、代码补全、调试功能等。
- R LSP 扩展:提供了 R 语言的 Language Server Protocol(LSP)支持,可以提供更强大的代码分析和自动补全功能。
配置 R 环境路径
在 VSCode 中,按下快捷键 “Ctrl+Shift+P”(或者 “F1”),在命令面板中输入 “settings” 并选择 “Preferences: Open User Settings” 打开用户设置窗口
找到 “R: Executable Path” 选项,点击编辑图标,在弹出框中输入 R 环境的路径(如 “C:\Program Files\R\R-4.0.4\bin\R.exe”),保存设置
查找r.rterm。填写radian.exe的路径
安装languageserver
包和httpgd
包:
- 注意要是用管理员模式下的命令行
- 在设置中选择
use httpgd
1 |
|
4-9更新:vscode nmsl,RStudio才是yyds
R语言语法速通
对象
R中存储的数据是对象,使用<-
可以对对象赋值,变量命名需要遵循一定的规则
对象与许多属性,比如类型和长度
1 |
|
数据结构
向量
向量是R语言中的一种数据类型,是R语言中最基础的数据结构
c()
函数可以对向量进行聚合操作
1 |
|
矩阵
用 matrix()
函数创建矩阵,第一个参数是矩阵向量,第二个指定行,第三个指定列
默认是竖着排,如果想横着排就应该指定byrow = TRUE
竖着排
1 |
|
横着排
1 |
|
列表
列表(list)可以将不同的数据结构组合起来
1 |
|
这里组合了abc,分别是数字向量、字符串向量、布尔向量
数据框
数据框(data frame)是一种特殊的列表,列表中的元素必须是等长的,很像是Excel表格
运算符
以向量Wie例
加减乘除模
两个向量的加减乘除是将相同位置的元素进行运算,以÷为例
1 |
|
注意,/
是除,%%
是取模操作
%*%
是求内积(点乘)
循环补齐
当两个向量长度不相等的时候,短的向量会循环补齐
1 |
|
上面例子中,x会自动补齐为(1, 2, 3,1, 2, 3,1),也即是循环复制,直至与y的长度相同,之后进行运算
关系运算符
比如比较两个向量的代销关系,是否相等
逻辑运算符
与或非
冒号运算符
创建整数序列,比如1:10创建
1~10
的整数序列seq函数也可以创建序列
seq(from = 1, to = 10, by = 1)
%in%
运算符用于判断元素是否属于向量
特殊值
Inf
,Infinity,无限大NaN
,Not a Number,比如0/0
函数
内置函数
数学函数
sum()
: 计算向量或矩阵中所有元素的总和。mean()
: 计算向量或矩阵中所有元素的平均值。max()
: 找出向量或矩阵中的最大值。min()
: 找出向量或矩阵中的最小值。abs()
: 求一个数或一组数的绝对值。sqrt()
: 求一个数或一组数的平方根。exp()
: 求一个数或一组数的指数函数。log()
: 求一个数或一组数的自然对数。
数据处理函数
unique()
: 去除向量或数据框中的重复元素。sort()
: 对向量进行排序。order()
: 对向量排序并返回排序后元素在原始向量中的下标。subset()
: 对数据框进行子集操作。merge()
: 将两个数据框按照某一列关键字合并。aggregate()
: 根据变量对数据框进行分组汇总。table()
: 统计向量或数据框中各元素的出现次数。
图形函数
plot()
: 绘制散点图、折线图等常见统计图形。hist()
: 绘制直方图。barplot()
: 绘制条形图。boxplot()
: 绘制箱线图。pie()
: 绘制饼图。
自定义函数
1 |
|
管道操作
管道操作符 %>%
将左侧表达式的结果作为右侧表达式的第一个参数进行传递
1 |
|
代码从一个CSV文件中读取数据,然后使用管道操作符对数据进行筛选、分组、汇总和排序等操作,最终得到一个按照平均收入降序排列的数据框。通过使用管道操作符,我们可以用更少的代码完成更多的工作,同时使代码更加易于理解
tidyreverse
数据清洗和转换:
filter()
函数:根据条件筛选数据select()
函数:选择保留的列mutate()
函数:新增或修改数据列group_by()
函数:按照某个变量分组summarize()
函数:对每个分组进行汇总计算arrange()
函数:基于某个变量排序
数据可视化:
ggplot()
函数:创建高质量的数据可视化图形geom_*()
函数:定义可视化图形的几何对象如点、线、区域等aes()
函数:设置图形的映射关系,如x轴、y轴和颜色等theme()
函数:调整图形的主题和外观
ggplot(grammar of graphics)
在 ggplot 中,图形是由图层 (layer) 组成的,每个图层包含以下三个部分:
- 数据集(data):即将要绘制的数据。
- 几何对象(geom):用来描述数据中每个点、线、矩形等几何元素的形状和位置。
- 美学映射(aesthetics):将数据中的变量映射到颜色、形状、大小等可视化属性上。
以一段代码为例
1 |
|
ggplot 函数用来创建一个基本的空白图层,其中包括了数据集和美学映射的定义
- data:表示传入的数据集
- aes():表示美学映射,通常是一个用逗号隔开的字符变量列表,指定了数据中的哪些变量要映射到图形属性上
几何对象函数(geom_*)。有很多,比如geom_point() 用来绘制散点图,geom_line() 用来绘制线性图
每个 ggplot 函数都可以通过加上各种图层来构成更加丰富的可视化效果。例如,可以使用 facet_grid() 函数为图像添加镶嵌面板、使用 scale_color_gradient() 函数来调整颜色渐变以及使用 theme() 来修改轴标签和标题的样式等。
将Rmd文件输出为PDF文件
在 R 语言中,knit
是一个用于将 RMarkdown 文档转换为纯文本或其他格式的函数。具体来说,knit
函数会读取 RMarkdown 文档中的 R 代码块,并执行这些代码块。然后,它会将执行结果(例如计算结果、图表、表格等)嵌入到 Markdown 或 LaTeX 格式的文本中,并生成最终的输出文件
要正确使用 knit
函数,你需要先安装并加载 knitr
包,可以使用 “Knit” 工具按钮调用 knit
函数,并通过设置 “Knit” 按钮下拉菜单中的选项来指定输出格式和其他选项
在 R 语言编译 rmd 文件的过程中,LaTeX 起到了将 Markdown 语法转换为 PDF 文档的作用。具体来说,当你使用 pdf_document
或 beamer_presentation
等输出格式时,RMarkdown 会将源文档转换为 LaTeX 格式,并使用 LaTeX 进行编译生成最终的 PDF 输出
为了编译出PDF,需要正确设置latex的编译器,在文件开头可以加几行yaml来指定,下面指定了xelatex,xelatex可以解决不能编译出中文字符的问题。要注意下面的缩进是不能更改的(被这个卡了很久
1 |
|