R 语言与 R Studio 完整入门教程
第一部分:准备工作
在开始之前,你需要安装两样东西:R 语言 和 R Studio。

-
安装 R 语言
- R 语言是编程语言本身,是执行代码的核心。
- 访问 R 官方网站:https://cran.r-project.org/
- 选择与你操作系统匹配的版本(Windows, macOS, Linux)并下载安装,Windows 用户只需双击
.exe文件,按照提示一步步安装即可。
-
安装 R Studio
- R Studio 是一个集成开发环境,它不是一个软件,而是一个为 R 语言量身定做的“工作台”,它能让你的编程工作更高效、更友好。
- 访问 R Studio 官方网站:https://www.rstudio.com/
- 选择 "RStudio Desktop",然后下载免费的 "Free" 版本即可。
- 安装 R Studio,安装完成后,打开它,它会自动检测到你之前安装的 R 语言。
第二部分:认识 R Studio 界面
打开 R Studio 后,你会看到一个被分成几个区域的窗口,了解这些区域是高效工作的第一步。
-
脚本编辑器 - 左上角
(图片来源网络,侵删)- 用途:在这里编写你的 R 代码,代码可以保存为
.R文件,方便以后重复使用和分享,这是一个文本编辑器,代码不会在这里直接运行。 - 快捷键:
Ctrl + Enter(Windows) 或Cmd + Enter(Mac) 可以运行当前选中的代码行或代码块。
- 用途:在这里编写你的 R 代码,代码可以保存为
-
控制台 - 左下角
- 用途:这是 R 语言真正执行代码的地方,你在这里可以直接输入命令并立即看到结果,当你从脚本编辑器运行代码时,结果也会显示在这里。
- 新手提示:刚开始时,你可以直接在这里尝试简单的命令,但养成在脚本编辑器中编写代码的习惯。
-
环境/历史 - 右上角
- 环境:显示你当前工作空间中的所有“对象”(Object),比如你创建的变量、数据框、函数等,你可以在这里看到它们的名称和类型。
- 历史:记录了你在控制台中输入过的所有命令。
-
文件/绘图/包/帮助 - 右下角
- 文件:显示你当前工作目录下的所有文件和文件夹,类似于 Windows 的资源管理器。
- 绘图:当你生成图表时,它们会显示在这里,你可以在这里缩放、导出图片。
- 包:管理你安装的 R 包,R 包是扩展 R 功能的集合,是 R 强大的原因之一,你可以在这里查看、安装、加载包。
- 帮助:R 内置的帮助文档,当你想了解某个函数的用法时,这里是你的好朋友。
第三部分:R 语言基础入门
让我们开始写一些 R 代码!
第一个 R 命令
在脚本编辑器中输入以下代码,然后按 Ctrl + Enter 运行。
# 这是一个注释,R 会忽略它
print("Hello, R World!")
你会在控制台看到输出 [1] "Hello, R World!"。
赋值与基本数据类型
R 使用 <- 或 来给变量赋值。
# 创建一个数值变量 x <- 10 print(x) # 创建一个文本(字符)变量 y <- "这是一个字符串" print(y) # 创建一个逻辑变量 is_r_fun <- TRUE print(is_r_fun)
基本数学运算 R 是一个计算器,非常擅长数学运算。
# 加法 5 + 3 # 减法 10 - 4 # 乘法 7 * 8 # 除法 20 / 4 # 幂运算 2 ^ 10 # 取余数 10 %% 3 # 结果是 1
向量 - R 的核心数据结构 向量是 R 中最基本、最重要的数据结构,它是一个相同类型元素的集合。
# 创建一个数值向量
numbers <- c(1, 2, 3, 4, 5) # c() 是连接函数
print(numbers)
# 创建一个文本向量
fruits <- c("apple", "banana", "cherry")
print(fruits)
# 向量运算:R 会自动对向量的每一个元素进行运算
prices <- c(10, 20, 30)
new_prices <- prices * 1.1 # 给所有价格打九折
print(new_prices)
数据框 - 数据分析的基石 数据框是用于存储表格数据的结构,类似于 Excel 表格,每一列必须是相同的数据类型,但不同列可以不同。
# 创建一个数据框
df <- data.frame(
name = c("Alice", "Bob", "Charlie"),
age = c(25, 30, 35),
city = c("New York", "London", "Tokyo")
)
# 查看数据框
print(df)
# 访问数据框的列
df$name
df$age
# 查看数据的前几行
head(df)
# 查看数据框的结构
str(df) # 非常有用的函数!
第四部分:数据导入与处理
真实的数据通常存储在外部文件中。
设置工作目录 R 需要知道你的文件在哪里,设置工作目录可以让你用更简单的文件名来访问文件。
- 方法一(推荐):在 R Studio 的 Files 面板中,找到你的数据文件所在的文件夹,右键点击,选择 "Set As Working Directory"。
- 方法二(代码):在脚本中输入
setwd("C:/你的文件夹路径"),注意路径中的 。
导入 CSV 文件
read.csv() 是最常用的函数。
假设你有一个名为 students.csv 的文件,内容如下:
name,score,gender
Alice,85,F
Bob,92,M
Charlie,78,M
David,88,F
在 R 中导入它:
# 导入 CSV 文件
students_data <- read.csv("students.csv", header = TRUE, stringsAsFactors = FALSE)
# 查看数据
print(students_data)
str(students_data)
使用 dplyr 包进行数据处理
dplyr 是一个功能强大的数据处理包,是 tidyverse 生态系统的一部分,它的语法非常直观。
第一步:安装和加载 dplyr
# 安装包(只需要安装一次)
install.packages("dplyr")
# 加载包(每次打开 R 都需要加载)
library(dplyr)
第二步:使用 dplyr 的核心函数
select(): 选择列filter(): 筛选行mutate(): 创建新列summarise(): 汇总数据group_by(): 分组
# 示例:基于 students_data
# 1. 筛选出分数大于 85 的学生
high_scorers <- filter(students_data, score > 85)
print(high_scorers)
# 2. 只选择 name 和 score 两列
student_scores <- select(students_data, name, score)
print(student_scores)
# 3. 创建一个新列 "grade",根据分数划分等级
students_data <- mutate(students_data,
grade = ifelse(score >= 90, "A",
ifelse(score >= 80, "B", "C")))
print(students_data)
# 4. 计算平均分
average_score <- summarise(students_data, avg_score = mean(score))
print(average_score)
# 5. 按性别分组,计算平均分和最高分
gender_summary <- students_data %>%
group_by(gender) %>%
summarise(avg_score = mean(score),
max_score = max(score),
count = n())
print(gender_summary)
%>% (管道符) 是 dplyr 的灵魂,它可以把前一个操作的结果“传递”给下一个函数,让代码像流水线一样清晰易读。
第五部分:数据可视化
ggplot2 是 R 中最著名、最灵活的可视化包,也属于 tidyverse。
安装和加载 ggplot2
install.packages("ggplot2")
library(ggplot2)
使用 ggplot2 创建图表
ggplot2 的核心思想是“图形语法”,即 ggplot(data = <数据>) + <几何对象>() + <美学映射>()。
示例:绘制一个散点图
# x轴是年龄,y轴是分数,颜色按性别区分 ggplot(data = students_data, aes(x = age, y = score, color = gender)) + geom_point() + # 使用点来绘制 labs(title = "学生年龄与分数关系图", x = "年龄", y = "分数") # 添加标签
示例:绘制一个柱状图
# 统计每个性别的学生人数 ggplot(data = students_data, aes(x = gender, fill = gender)) + geom_bar() + # 使用柱状图 labs(title = "不同性别学生人数", x = "性别", y = "人数") + theme(legend.position = "none") # 隐藏图例,因为颜色已经很明确了
第六部分:进阶学习路径与资源
当你掌握了以上基础后,可以朝以下方向深入:
- R Markdown:一个强大的工具,可以将代码、文本、图表和结果整合成一个漂亮的报告或网页,这是数据科学项目报告的黄金标准。
- Shiny:一个 R 包,可以让你用 R 语言创建交互式 Web 应用,无需了解 HTML、CSS 或 JavaScript。
- 机器学习:学习使用
caret或tidymodels等包进行预测建模。 - 时间序列分析:学习使用
forecast包进行时间序列预测。
推荐学习资源:
- 书籍:
- R for Data Science (在线免费阅读): 必读! 由
tidyverse的作者编写,完美衔接了数据处理和可视化。 - The Art of R Programming
- R for Data Science (在线免费阅读): 必读! 由
- 在线课程:
- DataCamp 和 Coursera 上有大量高质量的 R 语言课程。
- Johns Hopkins University 在 Coursera 上开设的 "Data Science" 专项课程非常经典。
- 社区:
- Stack Overflow:遇到具体问题时,搜索这里,或者提问。
- R-bloggers:一个聚合了全球 R 语言博客的网站,是学习最新技巧的好地方。
第七部分:最佳实践与常见问题
- 最佳实践:
- 使用脚本:永远不要在控制台直接写复杂的代码。
- 注释你的代码: 是你的朋友,解释你代码的意图。
- 有意义的命名:变量名和数据框名要清晰易懂(如
student_scores而不是df1)。 - 定期保存:保存你的
.R脚本和.RData工作空间。
- 常见问题:
- 问题:
Error in library(dplyr) : there is no package called ‘dplyr’- 解决:你没有安装或加载这个包,运行
install.packages("dplyr")和library(dplyr)。
- 解决:你没有安装或加载这个包,运行
- 问题:
Error: object 'x' not found- 解决:你引用的变量
x不存在于当前环境中,检查你是否拼写错误,或者是否已经运行了创建x的代码行。
- 解决:你引用的变量
- 问题:代码运行了,但没有输出任何东西。
- 解决:有些函数(如
mutate,filter)会返回一个修改后的数据对象,但不会自动打印,你需要用print()或直接输入变量名来查看结果。
- 解决:有些函数(如
- 问题:
祝你在 R 语言的学习之旅中一切顺利!这是一个非常有价值的技能。
