R 与 RStudio(Posit)
R 是用于统计计算与绘图的自由开源语言/环境,内置大量统计方法(线/非线性建模、检验、时间序列、分类、聚类等),矩阵代数支持强。适合统计分析与数据科学场景。
1. R 是什么 & 为什么用 R
-
定义:R 是用于统计计算与绘图的自由开源语言/环境,内置大量统计方法(线/非线性建模、检验、时间序列、分类、聚类等),矩阵代数支持强。适合统计分析与数据科学场景。
-
渊源:R 源于 S 语言(Bell Labs 1970s;Gentleman & Ihaka 1995 实现可执行 S 的软件——R)。S-PLUS 为商业化实现。
-
优势:
-
社区生态强:海量高质量、领域专用包(如金融、基因组学)。
-
统计函数与矩阵运算原生支持完善。
-
可视化强:尤其是 ggplot2 等扩展库。
-
-
注意:
-
性能不如系统语言;
-
偏统计/数据分析,通用编程略弱;
-
某些“怪癖”:1 起始索引、多赋值操作符、非常规数据结构等。
-
2. 安装与启动
-
R 获取:跨 Windows/macOS/Linux,去 CRAN 下载最新发行版并安装。安装完成后直接从应用目录启动 R 控制台。The Comprehensive R Archive Network

-
RStudio(现 Posit):主流 IDE,集控制台、语法高亮、绘图、历史、调试、工作区管理于一体。先装 R 再装 RStudio(Posit)。
-
下载:RStudio 官网页。RStudio is becoming Posit - Posit
-

-
备注:RStudio 正逐步品牌更名为 Posit。
-
RStudio Desktop - Posit
https://www.rstudio.com/products/rstudio/download/
-
-
启动与界面:IDE 四象限典型布局:脚本编辑器/控制台/绘图与文件与包/环境变量与帮助面板。掌握帮助面板的搜索与导航。

3. 包(Packages)与 CRAN 生态
-
为何装包:基础 R 不含所有领域算法,如 RNA-Seq 需
DESeq2/edgeR等;金融分析有专门 Task View。 -
CRAN Task Views:官方按领域分类的包清单/导览页面(金融视图示例)。优先从 Task View 找权威包与替代方案。

-
安装方式:
-
在线:
install.packages("tidyverse")(会自动下载/编译/安装)。 -
本地离线:RStudio 菜单 Packages → Install from local files,选择本地 zip。
-
-

-
加载包:
library(tidyverse),加载后其函数可直接调用。若报错“there is no package called …”,需先安装再library()。 -
tidyverse:一组“以数据科学为中心”的约定式包集合,核心成员含
ggplot2/dplyr/tidyr/readr/purrr/stringr/forcats;加载时会显示与stats的函数命名冲突提示(例如filter、lag)。
4. R 基础语法与运算符
4.1 交互与脚本
-
交互:控制台提示符
>,逐行执行。脚本文件建议以.R保存,通过编辑器发送至控制台运行。
4.2 赋值与变量
x <- 2; y <- 5
x * y # 10
x < y | y != 5 # TRUE
x < y & y != 5 # FALSE
-
赋值惯用
<-(也可用=,但建议风格一致)。
4.3 算术运算符

示例


4.4 逻辑/比较运算

示例



-
易错点:
=用于赋值;比较请用==。如2 = 2会报“invalid left-hand side to assignment”,正确写法2 == 2。

5. 数据类型与数据结构
5.1 向量(vector)
-
创建:
c(1,2,5.3,6,-2,4)、c("one","two")、c(TRUE,FALSE)。 -
索引:
a[c(2,4)]取第 2 与 4 个元素。


5.2 矩阵(matrix)
-
同列同模态、同长度。
Matrix name<-matrix(vector, nrow=r, ncol=c)


5.3 数据框(data.frame)
-
各列可不同类型(数值/字符/因子/逻辑)。


-
NA 表示缺失值,统计/绘图前需特别处理。
5.4 列表(list)
-
可异构数据容器:

-
双中括号
[[ ]]取组件本体;$按名称取组件。

6. 数据导入/导出
6.1 导入
-
CSV:
read.csv("path/mydata.csv")CSV 文件是一种用纯文本格式存储表格数据(如数字和文本)的通用标准。它利用简单的逗号(,)作为分隔符,来明确区分开每一条记录中的不同字段,从而实现数据的结构化存储和交换。

-
TSV/通用定界:
read.table("path/mydata.tsv")(默认空白分隔,TSV 常用sep="\t")制表符分隔值(TSV)文件是一种用于以表格结构存储数据的简单文本格式。


6.2 导出
-
制表符文本:
write.table(mydata, "path/mydata.txt", sep="\t")
-
CSV:
write.csv(mydata, "path/mydata.csv")
7. 查看数据与结构
-
自带数据集
trees(Girth, Height and Volume for Black Cherry Tree)用于练习:
-
names(trees)查看变量名; -
str(trees)查看结构(行数、列数、类型、示例值); -
head(trees)/tail(trees)看前/后 6 行。



-
8. 描述性统计与相关性
8.1 基本统计
R语言提供了大量用于获取汇总统计信息的函数。
-
mean/sd/var/min/max/median/range/quantile/IQR: -
summary(trees)是一个泛型函数生成的结果是一个总和一次产出均值/中位数/四分位/极值等汇总。
泛型函数quantile可生成对应于给定概率的样本分位数。最小观测值对应概率0,最大观测值对应概率1。
• IQR(x) = quantile(x, 3/4) - quantile(x, 1/4)(注:IQR即四分位距,是描述数据离散程度的统计量,计算公式为第三四分位数与第一四分位数之差)

8.2 相关/协方差
可以使用 cor() 函数计算相关系数,使用 cov() 函数计算协方差。
• 简化格式为:cor(x, use=, method=)



9. 绘图(Base R 与 ggplot2)
9.1 Base R
-
散点 + 回归线 + 标题:
plot() 函数会打开一个图形窗口并绘制树高与树围的散点图。
• 下一行代码会为此图形添加一条回归线。
• 最后一行代码添加标题。
-

-
直方图:
hist(trees$Height)。
-
保存图形(JPEG 举例):
jpeg("c:/mygraphs/myplot.jpg") plot(trees$Girth, trees$Height) dev.off() # 关闭图形设备,文件写入完成
-
注意:忘记dev.off()文件会不完整;在 macOS/Linux 改用合适路径分隔符。
9.2 ggplot2(tidyverse 核心)
-
安装与加载:
install.packages("tidyverse"); library(tidyverse);或仅装ggplot2。

-
内置数据
ggplot2::mpg(EPA 采集的 38 类车型相关数据,234×11):先?mpg查看字段含义。您可以探索 ggplot2 中的 mpg 数据框(即 ggplot2::mpg)。数据框是一种按变量(列)和观测值(行)组成的矩形集合。mpg 包含美国环境保护局收集的 38 款车型的观测数据。
-
基本绘图语法:
ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy))
解释:发动机排量(displ)与高速油耗(hwy)呈负相关(排量越大油耗越高)。

10. RStudio(Posit)帮助系统
-
打开 Help 面板,输入函数或包名(如
?mean、help("lm")、help.search("correlation")),查看示例与参数解释。熟练利用帮助是上手 R 的捷径。

11. 学习与资料
-
CRAN / Bioconductor:获取官方 R 与生物信息学包。
-
官方/社区资源:R 官网、RStudio(Posit)图书与教程清单。遇到报错先读帮助再搜这些权威渠道。
12. 实操清单(按本文档内容设计)
-
环境准备:安装 R → 安装 RStudio(Posit)→ 在 Console 输入
R.version.string验证。 -
包管理:
-
install.packages("tidyverse");library(tidyverse); -
查看包冲突提示;用
package::function消歧(如dplyr::filter)。
-
-
数据结构:
-
创建
vector/matrix/data.frame/list,练习索引与子集化。
-
-
导入导出:用
read.csv读一份 CSV,write.csv导出结果。 -
统计与可视化:
-
对
trees做summary、cor、cov; -
Base R 作散点 + 回归线,并保存为 jpeg;
-
用
ggplot2画mpg的displvshwy。
-
13. 常见坑位 & 小贴士(针对本文案例补充)
-
比较符号:判断相等用
==,别写=(赋值)。文档示例已给出典型报错场景。 -
缺失值:相关/协方差时若含 NA,请设置
use="complete.obs";否则可能得到 NA 结果或错误。 -
绘图导出:图形设备要
dev.off()关闭。未关闭时文件空白或被占用。 -
包未安装:
library()报 “there is no package called …” → 先install.packages()。 -
工作目录:路径写法与系统有关;建议先
getwd()/setwd();或使用 RStudio “Files” 面板设定。
更多推荐


所有评论(0)