3  Rstudio的界面以及包的安装

3.1 本章学习目标

完成本讲后,你将能够:

  • 理解 RStudio 四个核心功能区域的作用
  • 掌握脚本编写与代码运行的基本操作
  • 理解 Project 的重要性
  • 区分“安装包”与“加载包”的区别
  • 独立完成常用 R 包的安装与加载
  • 能够排查常见的包安装错误

3.2 RStudio 是什么

RStudio(现称 Posit Desktop)是 R 的集成开发环境(IDE)。

R 负责计算,RStudio 负责提供操作界面。

通过 RStudio,你可以:

  • 编写 R 脚本
  • 运行代码并查看结果
  • 管理文件与项目
  • 安装与加载扩展包
  • 生成报告与图形

3.3 RStudio 主界面结构

RStudio 默认由四个窗格组成(图3.1)。

图3.1 Rstudio的窗口

3.3.1 Source(脚本编辑区)

脚本用于编写:

  • .R 脚本
  • .qmd.Rmd 文档
  • 函数与分析代码

推荐做法:

  • 所有代码写在脚本中
  • 使用 Ctrl + Enter 运行当前行
  • 使用 Ctrl + S 保存文件

图3.2 Rstudio的 脚本区域截图

脚本区的功能介绍

Show in New Window

Show in New Window 用于将当前文档或预览内容在独立窗口中打开。

常见用途:

  • 将图形或报告在新窗口查看
  • 在双屏显示时单独查看输出
  • 避免编辑区被输出内容占用

Save

Save 用于保存当前脚本文件。

快捷键:

  • Windows:Ctrl + S
  • macOS:Cmd + S

良好习惯:

  • 写几行代码就保存一次
  • 运行前先保存
  • 修改后立即保存

未保存的脚本在关闭 RStudio 时可能丢失修改内容。


Source on Save

Source on Save 表示“保存时自动运行脚本”。

开启后:

  • 每次点击 Save
  • RStudio 会自动执行整个脚本

适合场景:

  • 开发函数脚本
  • 自动刷新数据对象
  • 编写教学示例

注意:

  • 若脚本包含耗时计算,不建议开启
  • 若脚本有错误,会在保存时立即报错

Find

Find 用于在当前文件中查找关键词。

快捷键:

  • Ctrl + F(当前文件)
  • Ctrl + Shift + F(全项目查找)

常见用途:

  • 查找变量名
  • 查找函数调用位置
  • 批量修改代码

建议:

  • 大型项目一定要掌握全局查找功能

Code Tools

Code Tools 提供代码辅助与编辑功能。

常见功能包括:

  • 自动补全(Tab 键)
  • 自动缩进
  • 代码折叠
  • 格式化代码

示例:

输入:

mean()  

Compile Report

Compile Report 用于将 R Markdown 或 Quarto 文档编译为报告。

.qmd 文件中,它通常对应工具栏上的 Render 按钮

常见输出格式包括:

  • HTML
  • PDF
  • Word

Compile Report 的作用

  • 执行文档中的所有代码块
  • 重新生成完整报告
  • 输出最终文件(如 .html.pdf

当你点击 Render 时,Quarto 会:

  1. 从文档第一行开始运行
  2. 执行所有代码块
  3. 生成最终排版好的报告文件

与普通 Run 的区别

  • Run 只运行当前代码块或选中代码
  • Compile Report 会运行整个文档

因此:

  • 调试阶段使用 Run
  • 最终生成报告使用 Compile Report

Run

Run 用于执行当前行或选中代码。

快捷键:

  • Windows:Ctrl + Enter
  • macOS:Cmd + Enter

适用场景

  • 测试一段代码
  • 分步运行程序
  • 调试函数逻辑

示例:

Code
x <- 10
x + 5
[1] 15

Re-run

Re-run 表示重新运行最近执行的代码。

它会重复刚刚执行的命令。

适用场景

  • 修改少量参数后快速测试
  • 重新验证刚才的计算结果
  • 重复执行最近一次操作

注意事项

  • Re-run 只重复上一条命令
  • 不会重新运行整个脚本
  • 不会清空当前环境

Source

Source 用于执行整个脚本文件。

点击 Source 后,RStudio 会:

  • 从第一行运行到最后一行
  • 依次在 Console 中执行所有代码

等价命令为:

source("your_script.R")

3.3.2 Console(控制台)

图3.3 Rstudio console

用于:

  • 执行代码
  • 显示输出结果
  • 显示错误与警告信息

示例:

Code
1 + 1
[1] 2
Code
sqrt(25)
[1] 5

Console 的运行机制

Console 本质上是一个 R 会话(R session) 的交互界面。

当变量被创建时,数据会存储在 R 会话(session) 的内存中。

其运行机制可以理解为以下过程:

  • 用户在 Console 中输入代码
  • 代码被发送给 R 解释器
  • R 逐行解析并执行代码
  • 执行结果返回并显示在 Console 中

R 采用的是 解释执行机制,而不是一次性编译运行。因此:

  • 每一行代码都是即时执行的
  • 代码的执行顺序非常重要
  • 后续代码依赖前面代码是否成功运行

例如:

Code
x <- 10
x + 5
[1] 15

如果没有先运行 x <- 10,第二行将会报错。


会话(Session)的概念

Console 中的所有对象都存在于当前的 R 会话中。

其主要特点包括:

  • 关闭 RStudio 或重启 R 会话后,对象会消失
  • 不同会话之间互不影响
  • 当前环境是“临时的”,不是永久保存的

重启 R 会话的方法:

  • 菜单:Session → Restart R
  • 快捷键:Ctrl + Shift + F10

重启后,当前环境会被完全清空。


Console 与脚本的关系

Console 是代码的 执行窗口,脚本是代码的 存储窗口

推荐的基本原则是:

  • 代码应写在脚本中
  • 通过 Run 或 Source 将代码发送到 Console 执行
  • 不要只在 Console 中临时输入代码

原因在于:

  • Console 中输入的代码不会自动保存
  • 分析过程的复现必须依赖脚本文件

Console 报错信息的含义

Console 中常见的信息类型主要有三类:

  • Error:代码无法执行
  • Warning:代码执行成功,但存在潜在问题
  • Message:普通提示信息

示例错误:

y + 1

如果对象 y 不存在,Console 会返回错误提示。

学会阅读并理解错误信息,是学习 R 语言的关键能力之一。


提示符(Prompt)的含义

Console 左侧常见的提示符包括:

  • > 表示可以输入新的命令
  • + 表示上一条命令尚未完成

例如:

 > if (TRUE) {
 +

当出现 + 时,说明代码结构尚未闭合,需要补充相应的内容(如 })。


Console 的内涵与学习意义

Console 不仅是代码执行窗口,更是理解 R 语言逻辑的核心场所。

它体现了:

  • 顺序执行的逻辑结构
  • 对象之间的依赖关系
  • 数据在内存中的存在方式
  • 交互式计算的思想

通过 Console,可以直观理解:

  • 什么是变量
  • 函数如何返回结果
  • 对象如何被创建、覆盖与更新

因此,Console 是学习 R 语言的起点,也是调试程序与理解分析过程的关键窗口。

3.3.3 Environment 面板

Environment(环境)面板用于显示当前 R 会话中的对象。

它反映的是当前内存中存在的变量、数据框、模型对象等内容。

例如:

Code
x <- 1:5
df <- data.frame(a = 1:3, b = c("A","B","C"))

运行后,Environment 中会显示:

  • x
  • df

Environment 的核心特点

  • 显示当前会话中的所有对象
  • 可以查看对象结构
  • 可以点击数据框进行预览
  • 可以手动删除对象

删除某个对象:

rm(x)

清空全部对象:

rm(list = ls())

学习建议

  • 不要依赖手动点击删除对象
  • 养成通过脚本重建环境的习惯
  • 定期重启 R 会话测试代码完整性

3.3.4 History 面板

History(历史)面板用于记录在 Console 中执行过的命令。

History 的特点

  • 自动记录当前会话中输入的命令
  • 可双击重新执行
  • 可选中多条命令发送到脚本

使用场景

  • 回溯刚刚执行的代码
  • 找回误删命令
  • 将临时测试代码保存到脚本

将历史命令写入脚本:

  • 选中命令
  • 点击 “To Source”

保存历史记录:

 savehistory("my_history.Rhistory")

读取历史记录:

 loadhistory("my_history.Rhistory")

3.3.5 Connections 面板

Connections(连接)面板用于管理外部数据源连接。

常见连接类型包括:

  • 数据库(MySQL、PostgreSQL 等)
  • Spark
  • 云存储
  • 远程服务器

当建立数据库连接时,例如:

# 示例(需安装 DBI 包)
 library(DBI)
 con <- dbConnect(...)

连接成功后,会在 Connections 面板中显示。

Connections 的作用

  • 可视化数据库结构
  • 浏览表结构
  • 快速预览数据
  • 管理连接状态

断开连接示例:

 dbDisconnect(con)

3.3.6 三个面板的区别

面板 功能核心 主要用途
Environment 当前会话对象管理 查看与管理变量
History 命令历史记录 回溯与复用命令
Connections 外部数据源连接管理 数据库与远程连接

3.3.7 Files 面板

Files 面板用于浏览和管理当前工作目录中的文件。

它的核心作用是:

  • 查看当前项目文件结构
  • 新建文件夹
  • 删除或重命名文件
  • 设置工作目录

常见操作

进入子文件夹:

  • 双击文件夹名称

返回上级目录:

  • 点击“..”

设置当前目录为工作目录:

  • More → Set As Working Directory

查看当前工作目录:

getwd()

Files 面板本质上是对当前项目目录的可视化管理工具。


3.3.8 Plots 面板

Plots 面板用于显示图形输出结果。

当运行绘图代码时,例如:

Code
plot(1:10)

生成的图形会自动显示在 Plots 面板中。

Plots 的常见功能

  • 切换上一张或下一张图
  • 导出图像(Export)
  • 放大图形(Zoom)
  • 保存为 PNG / PDF

建议:

  • 分析结束后及时导出高质量图片
  • 使用脚本保存图形以保证可复现

3.3.9 Packages 面板

Packages 面板用于管理已安装的 R 包。

主要功能包括:

  • 查看已安装的包
  • 勾选加载包(等价于 library())
  • 安装新包
  • 更新包

例如加载包:

library(ggplot2)

在 Packages 面板中勾选 ggplot2,效果与上面代码相同。

建议:

  • 优先使用代码加载包
  • 保证脚本完整可复现

3.3.10 Help 面板

Help 面板用于查看函数帮助文档。

例如:

?mean

或:

help(mean)

Help 面板会显示:

  • 函数说明
  • 参数解释
  • 使用示例

学习建议:

  • 遇到不熟悉的函数先查看帮助
  • 重点阅读 Arguments 和 Examples 部分

3.3.11 Viewer 面板

Viewer 面板用于显示网页内容和交互式结果。

常见用途包括:

  • 显示 HTML 报告
  • 显示 Shiny 应用
  • 预览 Quarto 渲染结果
  • 显示交互式图形

例如运行 Shiny 应用时,界面会显示在 Viewer 中。

Viewer 是 RStudio 内部的“浏览器窗口”。


3.3.12 Presentation 面板

Presentation 面板用于展示基于 R Markdown 或 Quarto 制作的演示文稿。

功能包括:

  • 播放幻灯片
  • 切换页面
  • 全屏展示

适用于:

  • 教学展示
  • 会议汇报
  • 课程演示

现代教学中更推荐使用 Quarto 生成 revealjs 幻灯片。


3.3.13 右下角窗口功能总结

面板 核心功能 主要用途
Files 文件管理 浏览与管理项目文件
Plots 图形管理 查看与导出图像
Packages 包管理 安装与加载扩展包
Help 文档查询 查阅函数说明
Viewer 网页预览 显示 HTML 与交互内容
Presentation 演示播放 播放幻灯片

3.4 什么是 R 包

R 之所以功能强大,是因为其拥有庞大的扩展包生态系统。

所谓“包(Package)”,是指一组已经封装好的函数、数据和文档的集合,用于实现特定功能。

可以理解为:

  • R 是核心系统
  • 包是扩展模块

例如:

  • ggplot2 用于绘图
  • dplyr 用于数据处理
  • sf 用于空间数据分析
  • shiny 用于交互式应用开发

CRAN(Comprehensive R Archive Network)是 R 官方包仓库:

https://cran.r-project.org/

国内镜像可参考:

https://mirrors.tuna.tsinghua.edu.cn/CRAN/


3.4.1 选择 CRAN 镜像

为了提高下载速度,建议选择合适的镜像。

方法一:首次安装时选择镜像

chooseCRANmirror()

方法二:设置默认镜像

options(repos = c(CRAN = "https://cloud.r-project.org"))

或使用国内镜像:

 options(repos = c(CRAN = "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))

3.4.2 包的安装方式

联机在线安装(最常用)

 install.packages("MASS")

一次安装多个包:

 install.packages(c("ggplot2","dplyr","readxl"))

使用界面安装

  • RStudio → Packages → Install
  • 输入包名 → Install

离线安装(本地安装)

适用于:

  • 无网络环境
  • 非 CRAN 注册包
 install.packages("包文件路径/package.tar.gz", repos = NULL, type = "source")

Windows 下也可安装 .zip 文件。


从 GitHub 安装外源包

有些包尚未发布到 CRAN,可从 GitHub 安装。

首先安装 remotes 包:

 install.packages("remotes")

然后安装 GitHub 包:

 remotes::install_github("用户名/仓库名")

例如:

 remotes::install_github("tidyverse/ggplot2")

注意:

  • Windows 用户可能需要安装 Rtools
  • 安装过程中可能涉及编译

3.4.3 包的删除与更新

删除已安装的包:

 remove.packages("MASS")

更新所有包:

 update.packages()

3.4.4 查看包路径与已安装包

查看当前包安装路径:

.libPaths()

查看已安装包:

 installed.packages()

查看某个包的帮助文档:

help(package = "MASS")

3.4.5 加载包的方法

加载包:

library(ggplot2)

或:

require(ggplot2)

区别:

  • library() 加载失败会报错
  • require() 加载失败返回 FALSE

也可以在 RStudio 右下角 Packages 面板中勾选加载。


3.4.6 包的使用示例

Code
library(vcd)
mosaic(Titanic, shade = TRUE, legend = TRUE)

思考:

  • 在图中哪一类人群存活率较高?
  • 性别是否对生存率产生影响?

3.4.7 常见问题与建议

  • 安装失败时优先检查镜像
  • Windows 用户如提示编译错误,需安装 Rtools
  • 加载包失败时检查拼写是否正确
  • 尽量在脚本中写明 library(),保证代码可复现