R 基础语法:从入门到实战的完整指南

发布时间:2026/10/24 11:49:46

R 基础语法:从入门到实战的完整指南 1. R 语言简介R 是一种用于统计计算和数据分析的编程语言广泛应用于数据科学、统计分析、机器学习等领域。R 语言以其强大的数据处理能力、丰富的可视化功能和活跃的开源社区而著称。本文将从基础语法入手通过大量代码实例帮助读者快速掌握 R 的核心用法。2. 基本数据类型R 中最常用的基本数据类型包括数值型numeric、字符型character、逻辑型logical和因子型factor。下面通过代码示例逐一介绍。# 数值型 x - 3.14 print(x) print(class(x)) 字符型 name - Alice print(name) print(class(name)) 逻辑型 is_valid - TRUE print(is_valid) print(class(is_valid)) 因子型 gender - factor(c(男, 女, 男)) print(gender) print(class(gender))3. 变量与赋值R 支持多种赋值方式最常用的是左箭头-和等号。变量名区分大小写且不能以数字开头。# 使用左箭头赋值 a - 10 b - 20 使用等号赋值 c 30 变量名区分大小写 Age - 25 age - 30 print(Age) # 输出 25 print(age) # 输出 30 一次赋值多个变量 d - e - 100 print(d) print(e)4. 向量与矩阵向量是 R 中最基本的数据结构使用c()函数创建。矩阵是二维的向量使用matrix()函数创建。# 创建向量 v1 - c(1, 2, 3, 4, 5) print(v1) 创建字符向量 v2 - c(苹果, 香蕉, 橙子) print(v2) 向量运算 v3 - c(1, 2, 3) v4 - c(4, 5, 6) print(v3 v4) # 逐元素相加 print(v3 * 2) # 标量乘法 创建矩阵 m - matrix(1:9, nrow 3, ncol 3) print(m) 按行填充矩阵 m2 - matrix(1:9, nrow 3, byrow TRUE) print(m2) 矩阵运算 m3 - matrix(1:4, nrow 2) m4 - matrix(5:8, nrow 2) print(m3 m4) # 矩阵加法 print(m3 %*% t(m4)) # 矩阵乘法5. 数据框Data Frame数据框是 R 中最常用的数据结构类似于 Excel 表格或 SQL 数据表。它由多个向量组成每个向量可以是不同的数据类型。# 创建数据框 df - data.frame( 姓名 c(张三, 李四, 王五), 年龄 c(25, 30, 28), 城市 c(北京, 上海, 广州) ) print(df) 查看数据框结构 str(df) 访问列 print(df$姓名) print(df[[年龄]]) 访问行 print(df[1, ]) # 第一行 print(df[2, 3]) # 第二行第三列 添加新列 df$工资 - c(8000, 9500, 9000) print(df) 筛选数据 subset_df - df[df$年龄 26, ] print(subset_df)6. 条件语句R 中的条件语句使用if、else if和else关键字。条件表达式的结果必须是逻辑值 TRUE 或 FALSE。# 基本 if 语句 score - 85 if (score 60) { print(及格) } else { print(不及格) } 多条件判断 score - 92 if (score 90) { print(优秀) } else if (score 80) { print(良好) } else if (score 60) { print(及格) } else { print(不及格) } 逻辑运算符 age - 25 if (age 18 age 60) { print(成年且未退休) } ifelse 函数向量化条件判断 scores - c(55, 78, 90, 45, 88) results - ifelse(scores 60, 及格, 不及格) print(results)7. 循环语句R 支持for循环和while循环。在 R 中向量化操作通常比循环更高效但在某些场景下循环仍然必不可少。# for 循环 for (i in 1:5) { print(i) } 遍历向量 fruits - c(苹果, 香蕉, 橙子) for (fruit in fruits) { print(paste(我喜欢吃, fruit)) } while 循环 count - 1 while (count 5) { print(count) count - count 1 } 循环中的 break 和 next for (i in 1:10) { if (i 3) { next # 跳过当前迭代 } if (i 8) { break # 终止循环 } print(i) } 嵌套循环 for (i in 1:3) { for (j in 1:3) { print(paste(i , i, , j , j)) } }8. 函数定义R 中使用function()关键字定义函数。函数可以接受参数、返回结果并支持默认参数值。# 定义简单函数 add - function(a, b) { return(a b) } print(add(3, 5)) 带默认参数的函数 greet - function(name 世界) { return(paste(你好, name, , sep )) } print(greet()) print(greet(小明)) 多返回值使用列表 get_stats - function(x) { mean_val - mean(x) sd_val - sd(x) return(list(mean mean_val, sd sd_val)) } result - get_stats(c(1, 2, 3, 4, 5)) print(result$mean) print(result$sd) 匿名函数 squared - function(x) x^2 print(sapply(1:5, squared)) 函数作为参数传递 apply_func - function(x, func) { return(func(x)) } print(apply_func(10, function(n) n * 2))9. 常用数据结构操作R 提供了丰富的函数用于数据操作包括列表list、集合set和字符串处理等。# 列表操作 my_list - list( 名称 测试, 数值 c(1, 2, 3), 嵌套 list(a 1, b 2) ) print(my_list$名称) print(my_list$数值[2]) print(my_list$嵌套$a) 字符串处理 text - Hello, R Language print(nchar(text)) # 字符串长度 print(toupper(text)) # 转大写 print(tolower(text)) # 转小写 print(substr(text, 1, 5)) # 截取子串 print(strsplit(text, , )) # 分割字符串 字符串拼接 paste(R, 语言, sep -) paste0(R, 语言) 集合操作 set1 - c(1, 2, 3, 4) set2 - c(3, 4, 5, 6) print(union(set1, set2)) # 并集 print(intersect(set1, set2)) # 交集 print(setdiff(set1, set2)) # 差集10. 数据可视化基础R 的绘图功能非常强大基础绘图系统使用plot()、hist()、barplot()等函数即可快速生成图表。# 散点图 x - c(1, 2, 3, 4, 5) y - c(2, 4, 5, 4, 8) plot(x, y, main 散点图示例, xlab X 轴, ylab Y 轴) 直方图 data - rnorm(100, mean 50, sd 10) hist(data, main 直方图示例, xlab 数值, col lightblue) 柱状图 barplot(c(10, 20, 15, 25), names.arg c(A, B, C, D), main 柱状图示例, col lightgreen) 箱线图 boxplot(data, main 箱线图示例, ylab 数值) 使用 ggplot2 包需先安装 install.packages(ggplot2) library(ggplot2) df - data.frame( 类别 c(A, B, C, D), 数值 c(10, 20, 15, 25) ) ggplot(df, aes(x 类别, y 数值)) geom_bar(stat identity, fill steelblue) labs(title ggplot2 柱状图示例)11. 文件读写R 支持读写多种格式的文件包括 CSV、Excel、文本文件等。下面演示常见的文件操作。# 写入 CSV 文件 df - data.frame( 姓名 c(张三, 李四, 王五), 年龄 c(25, 30, 28), 城市 c(北京, 上海, 广州) ) write.csv(df, data.csv, row.names FALSE) 读取 CSV 文件 df_read - read.csv(data.csv) print(df_read) 写入文本文件 writeLines(c(第一行, 第二行, 第三行), output.txt) 读取文本文件 lines - readLines(output.txt) print(lines) 读取 Excel 文件需安装 readxl 包 install.packages(readxl) library(readxl) excel_data - read_excel(data.xlsx) 读取 JSON 文件需安装 jsonlite 包 install.packages(jsonlite) library(jsonlite) json_data - fromJSON(data.json)12. 实用技巧与最佳实践掌握以下实用技巧可以让你的 R 代码更加高效、规范。# 查看帮助文档 ?mean help(mean) 查看函数参数 args(mean) 查看工作目录 getwd() 设置工作目录 setwd(C:/Users/username/Documents) 查看已安装的包 installed.packages() 安装包 install.packages(dplyr) 加载包 library(dplyr) 管道操作符dplyr 包 df %% filter(年龄 26) %% select(姓名, 城市) %% arrange(姓名) 使用 apply 系列函数 mat - matrix(1:9, nrow 3) apply(mat, 1, sum) # 按行求和 apply(mat, 2, sum) # 按列求和 处理缺失值 data_with_na - c(1, 2, NA, 4, NA) print(is.na(data_with_na)) print(na.omit(data_with_na)) print(mean(data_with_na, na.rm TRUE))13. 总结本文系统介绍了 R 语言的基础语法包括数据类型、变量赋值、向量与矩阵、数据框、条件语句、循环、函数定义、数据操作、可视化和文件读写等内容。通过丰富的代码实例读者可以快速上手 R 语言。R 语言的学习需要理论与实践相结合建议读者在掌握基础语法后进一步学习dplyr、ggplot2、tidyr等常用包并结合真实数据集进行练习。R 社区拥有丰富的学习资源和开源项目持续学习和实践是掌握 R 语言的关键。
延伸阅读

更多相关文章

2026/10/25 7:10:31

Android校招笔试高频考点与解题策略:从HashMap到Handler机制深度解析

1. 这套笔试到底在考什么1.1 从招聘视角看360的出题逻辑先说个题外话。看到“2019校招笔试”这个年份,可能有人会觉得“都过去这么久了,还看它干嘛”。如果你真这么想,那就亏大了。校招题库这玩意儿跟流行时尚不一样,它的核心考点…

2026/10/25 7:10:08

日系与德系数控机床对决:从数控系统到选型全解析

在制造业圈子里,只要聊到高端数控机床,“日系”和“德系”这两个阵营就会被反复拿到台面上比较。很多人问我的第一句话就是:日本和德国数控机床,到底谁更强?这个问题如果简单回答“日本强”或“德国强”,其…

2026/10/24 9:39:14

给 trae-novel 配 .gitignore 差点踩坑:别一上来就忽略整个目录

上周我在维护 trae-novel 这个小说数据采集项目时,遇到了一件差点闯大祸的事:我给 .gitignore 追加了一堆规则后,差点把攒了两周的番茄小说榜单原始数据、还有整理好的全量小说目录 txt 全给弄丢。后来复盘整个配置过程,发现很多人…

2026/10/25 7:08:13

Agent-Reach:大模型智能体真实可达性能力边界解析

1. “Agent-Reach”不是工具名,而是能力边界的具象化表达你第一次在GitHub趋势榜或Reddit技术板块看到“Agent-Reach”这个词时,大概率会下意识把它当成某个新开源项目、CLI工具包,甚至某家创业公司的产品代号。我最初也这么以为——直到连续…

2026/10/25 7:08:13

二手车价格预测实战:LightGBM建模、分布偏移与避坑指南

简介:一个基于机器学习Python的二手车交易预测评估系统项目源码与数据集合集,面向毕业设计、课程设计或机器学习入门人群,聚焦二手车价格预测场景,完整覆盖数据读取、特征处理、模型训练与评估等环节。资源包共10个文件&#xff0…

2026/10/25 7:08:13

视频OCX控件安装注册与浏览器加载排查全流程

简介:这份资源是海康威视 NetVideoActiveX 系列 OCX 控件的开发包,面向需要在 Windows 桌面程序中接入海康摄像头、NVR 等硬件设备的软件开发者,以及从事视频监控系统二次开发的技术人员。它解决的正是实时视频预览、抓图、录像、云台和镜头控…

2026/10/25 7:08:13

雷达基数据解析与显示:从RadarYHM到PPI/CAPPI的完整流程

简介:这是一份面向雷达数据处理与可视化开发者的C工程资源包,聚焦基数据解析与雷达显示两大环节。压缩包内共80个文件,以头文件和源文件为主,涵盖VC工程配置、可执行文件及图标位图等资源,整体仅7.83MB。该资源已有344…

2026/10/25 7:08:13

AI智能体指挥调度系统架构与实战解析

1. 项目概述:智能体时代的指挥调度革命当AI Agent开始大规模进入企业生产环境,西南地区某科技企业总部最近上线了一套智能体指挥调度系统。这套系统最引人注目的特点是设置了两个特殊岗位:AI Agent指挥官和AI调度官。这不是科幻电影里的设定&…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑