R语言是一门非常强大的**统计计算和图形化**的编程语言。它被广泛用于数据分析、机器学习、科学研究、金融分析等领域
·
R语言是一门非常强大的统计计算和图形化的编程语言。它被广泛用于数据分析、机器学习、科学研究、金融分析等领域。
下面我将为你提供一个全面的R语言介绍,从基础到进阶。
1. R语言的核心特点
- 开源免费:任何人都可以免费使用和修改。
- 强大的统计和绘图能力:内置了大量统计函数和极其强大的绘图系统(如基础绘图、ggplot2)。
- 活跃的社区:拥有一个非常庞大的用户和开发者社区,你遇到的大部分问题都能在网上找到答案。
- 丰富的扩展包:通过CRAN、Bioconductor、GitHub等平台,有超过18,000个扩展包,覆盖了几乎所有能想到的统计和数据分析技术。
- 向量化操作:可以对整个向量或矩阵进行运算,无需编写循环,代码简洁高效。
- 数据处理能力强:拥有如 dplyr, data.table 等高效的数据处理包。
2. 安装与环境
- 安装R:从 The Comprehensive R Archive Network (CRAN) 下载并安装。
- 安装RStudio(强烈推荐):RStudio是一个功能强大的集成开发环境(IDE),它让使用R变得更加轻松。从 RStudio官网 下载桌面版。
RStudio的界面通常包含四个主要窗格:
- 源代码编辑器:编写和保存脚本。
- 控制台:执行代码并查看输出。
- 环境/历史:显示当前工作空间中的变量和命令历史。
- 文件/图/包/帮助:管理文件、查看图形、安装包和查阅文档。
3. 基础语法和操作
让我们通过一些基本代码来感受R。
基本计算
R可以作为一个强大的计算器使用。
# 这是注释
1 + 1
5 * 2
sqrt(25) # 平方根
log(10) # 自然对数
变量赋值
使用 <- 或 = 进行赋值,但 <- 是更传统的R风格。
x <- 10
y <- 20
name = "Hello, R!"
数据类型和数据结构
- 向量:最基本的一维数据结构,所有元素必须是同一类型。
# 创建向量 num_vec <- c(1, 2, 3, 4, 5) char_vec <- c("apple", "banana", "orange") logical_vec <- c(TRUE, FALSE, TRUE) # 向量运算 num_vec * 2 num_vec + c(1, 1, 1, 1, 1) - 数据框:最常用的数据结构,类似于Excel表格,每一列是一个向量(等长),但列与列之间的类型可以不同。
# 创建数据框 df <- data.frame( name = c("Alice", "Bob", "Charlie"), age = c(25, 30, 35), score = c(85.5, 92.0, 79.5) ) # 查看数据框 View(df) # 在新标签页中打开查看 head(df) # 查看前几行 str(df) # 查看结构 summary(df) # 查看摘要统计信息 # 访问数据 df$name # 访问‘name’列 df[1, ] # 访问第一行 df[ , 2] # 访问第二列 df[2, 3] # 访问第二行第三列的元素 - 列表:可以包含不同类型、不同长度对象的复杂数据结构。
my_list <- list( a = 1:5, b = "a string", c = data.frame(x = 1:3, y = 4:6) ) # 访问列表元素 my_list$a my_list[[1]]
4. 数据处理(使用 dplyr 包)
dplyr 是R语言中最受欢迎的数据处理包,它提供了一套清晰、一致的“动词”来处理数据。
首先需要安装并加载包:install.packages("dplyr") -> library(dplyr)
# 使用内置数据集 mtcars
data(mtcars)
# 1. filter(): 按条件筛选行
fast_cars <- filter(mtcars, hp > 200)
# 2. select(): 选择特定的列
car_info <- select(mtcars, mpg, cyl, hp)
# 3. mutate(): 创建新的列
mtcars <- mutate(mtcars, km_per_l = mpg * 0.425)
# 4. arrange(): 按列排序
mtcars_sorted <- arrange(mtcars, desc(mpg)) # 按mpg降序排列
# 5. summarise(): 汇总数据
summary_stats <- summarise(mtcars,
avg_mpg = mean(mpg),
max_hp = max(hp))
# 使用管道操作符 %>% (或 |> in R 4.1+)
# 管道可以将前一个操作的结果传递给后一个操作,使代码更易读。
result <- mtcars %>%
filter(cyl == 6) %>% # 筛选6缸车
select(mpg, hp, wt) %>% # 选择这三列
mutate(ratio = hp / wt) %>% # 计算功率重量比
arrange(desc(ratio)) # 按比率降序排列
print(result)
5. 数据可视化(使用 ggplot2 包)
ggplot2 是R语言中最强大、最优雅的绘图系统,基于“图形语法”理论。
安装并加载:install.packages("ggplot2") -> library(ggplot2)
# 使用 diamonds 数据集
data(diamonds)
# 散点图:carat 和 price 的关系
ggplot(diamonds, aes(x = carat, y = price)) +
geom_point(alpha = 0.3, color = "blue") + # 透明度为0.3的蓝色点
labs(title = "Diamond Price vs. Carat",
x = "Carat",
y = "Price (USD)")
# 分面直方图:按 cut 查看 price 的分布
ggplot(diamonds, aes(x = price, fill = cut)) +
geom_histogram(binwidth = 500) +
facet_wrap(~cut) + # 按 cut 分面
theme_minimal()
# 箱线图:按 color 查看 depth 的分布
ggplot(diamonds, aes(x = color, y = depth)) +
geom_boxplot() +
labs(title = "Diamond Depth by Color")
6. 获取帮助
在R中,你可以很方便地获取帮助。
?mean # 查看 mean 函数的帮助文档
??"regression" # 搜索包含“regression”的主题
help(package = "dplyr") # 查看dplyr包的所有文档
学习路径建议
- 基础:掌握变量、数据类型(向量、数据框)、基本运算和函数。
- 数据导入:学习如何从CSV、Excel等文件导入数据(推荐使用
readr和readxl包)。 - 数据清洗与整理:精通
dplyr和tidyr包,这是数据分析工作的核心。 - 数据可视化:深入学习
ggplot2,这是R语言的王牌功能之一。 - 统计建模:学习线性回归、方差分析、广义线性模型等。
- 报告生成:学习 R Markdown,可以将你的代码、结果、图表和文字叙述整合成一个漂亮的HTML、PDF或Word报告。
R语言的学习曲线前期可能有些陡峭,但一旦掌握了它的核心思想,你会发现它在数据科学领域是无可替代的利器。祝你学习愉快!
更多推荐


所有评论(0)