R编程入门
本课程全面介绍R语言环境,涵盖从基本的数值向量操作、对象属性、数组和矩阵处理、列表与数据框管理,到统计建模和高质量图形制作的核心内容。它非常适合作为统计分析和数据科学的入门教材。
课程概述
📚 内容概要
本课程是 R 语言环境的全面入门教程,涵盖从基础数值向量操作、对象属性、数组/矩阵处理,到列表/数据框管理、统计建模以及高质量图形制作的核心主题。适合作为统计分析与数据科学的入门教材。
掌握 R 语言的核心知识,开启统计计算与数据可视化的大门。
作者: R 开发核心小组
致谢: 本手册由 R 开发核心小组维护。中文版感谢末泽信一(Shigeru MASE)的日文翻译基础,以及李志鹏博士、李瑞等中文翻译团队的贡献。
🎯 学习目标
- 启动 R 会话,导航帮助系统,并应用基本语法规则(大小写敏感性、赋值和注释)。
- 区分并创建逻辑向量、字符向量,以及处理缺失值(
NA和NaN)。 - 使用四种不同的索引方法来选择、排除或修改特定的数据子集。
- 识别并修改 R 对象的内在属性(模式和长度)。
- 使用
class()和attr()函数来管理对象元数据和数据结构。 - 创建并操作因子和有序因子,以表示分类数据。
- 使用维度向量和
array()函数定义并构造数组和矩阵。 - 应用高级索引技术,包括使用索引矩阵提取或修改特定元素。
- 执行线性代数运算,包括外积、广义转置和矩阵求逆。
- 构建与修改列表:创建命名和非命名列表,并使用特定的 R 语法进行合并。
🔹 第 1 课:R 入门与向量基础
概述: 本课介绍 R 的基础环境,涵盖其基本语法、命令执行方式及帮助系统。同时深入探讨特殊向量类型——逻辑型、字符型和缺失值,并提供通过索引向量选择和修改数据子集的详细方法。
学习成果:
- 启动 R 会话,导航帮助系统,并应用基本语法规则(大小写敏感性、赋值和注释)。
- 区分并创建逻辑向量、字符向量,以及处理缺失值(
NA和NaN)。 - 使用四种不同的索引方法来选择、排除或修改特定的数据子集。
🔹 第 2 课:对象属性与因子处理
概述: 本课讲解 R 对象的基本属性,特别是其内在属性如模式和长度,以及如何查询或修改这些属性。同时探讨“因子”这一专用于处理分类变量的数据结构,并演示如何使用 tapply() 函数在因子的不同水平上执行分组统计分析。
学习成果:
- 识别并修改 R 对象的内在属性(模式和长度)。
- 使用
class()和attr()函数来管理对象元数据和数据结构。 - 创建并操作因子和有序因子,以表示分类数据。
🔹 第 3 课:数组、矩阵与线性代数
概述: 本课探索 R 在处理多维数据方面的强大能力,通过数组和矩阵实现。学生将学习如何使用维度向量定义数据结构,执行复杂的索引操作,并完成关键的线性代数运算——如矩阵乘法、求逆和分解——这些对于统计计算和数据分析至关重要。
学习成果:
- 使用维度向量和
array()函数定义并构造数组和矩阵。 - 应用高级索引技术,包括使用索引矩阵提取或修改特定元素。
- 执行线性代数运算,包括外积、广义转置和矩阵求逆。
🔹 第 4 课:数据管理:列表、数据框与输入输出
概述: 本课介绍在 R 中处理复杂数据结构和外部数据的基础知识。重点讲解列表——一种可容纳不同类型组件的灵活容器——以及输入/输出(I/O)的实际操作,包括将外部文件读入列表结构、访问包中的内置数据集,以及使用交互式编辑工具修改数据。
学习成果:
- 构建与修改列表:创建命名和非命名列表,并使用特定的 R 语法进行合并。
- 成分访问:区分并应用不同的索引方法(
[[ ]]、[ ]和$)以获取列表数据。 - 外部数据输入:使用
scan()函数将外部文件中的数据读取为结构化列表或矩阵。
🔹 第 5 课:概率分布与统计检验
概述: 本课全面介绍如何在 R 中处理概率分布并进行统计推断。学生将学习使用 R 标准化的前缀系统(d, p, q, r)调用分布函数,生成描述性统计量,并通过经验累积分布函数(ecdf)和 Q-Q 图对数据进行可视化评估。
学习成果:
- 掌握 R 分布命名规则(前缀 d, p, q, r),并应用于正态、t 和 F 等标准分布。
- 构建并解释视觉诊断工具,特别是经验累积分布函数(ecdf)和分位数-分位数(Q-Q)图,以评估分布拟合程度。
- 执行并区分参数检验与非参数检验,包括 Welch t 检验、Shapiro-Wilk 正态性检验和 Kolmogorov-Smirnov 检验。
🔹 第 6 课:程序控制与迭代逻辑
概述: 本课介绍控制 R 程序执行流程的基本机制。重点在于将多个表达式组合成单一单元,并利用控制语句——包括条件分支(if-else)和各种循环结构(for、repeat、while)——自动化数据分析任务并处理复杂逻辑。
学习成果:
- 使用大括号将多个 R 表达式组合成一条语句。
- 实现条件逻辑,根据逻辑条件执行特定代码块。
- 构造迭代循环,自动对向量和列表等数据结构执行重复操作。
🔹 第 7 课:自定义函数开发与作用域
概述: 本课探讨从将 R 当作交互式计算器过渡到将其作为编程语言使用的转变,重点在于开发自定义函数。内容涵盖函数定义语法、参数处理、词法作用域规则,以及通过泛型函数和方法初步理解 R 的 S3 面向对象系统。
学习成果:
- 创建并调用自定义函数:定义带有形式参数和自定义二元运算符的函数。
- 管理参数与作用域:区分位置匹配与关键字匹配,并解释词法作用域如何管理局部变量与自由变量。
- 实现可变状态与自定义环境:使用闭包和超赋值运算符(
<<-)维持状态,并通过启动/会话函数自定义 R 环境。
🔹 第 8 课:统计建模:线性与非线性模型
概述: 本课深入探讨 R 中超越简单线性回归的完整统计建模工具集。涵盖通过泛型函数提取模型信息、使用 ANOVA 比较模型,以及针对二元数据和计数数据拟合广义线性模型(GLMs),同时介绍非线性建模技术。
学习成果:
- 使用泛型 R 函数从拟合模型中提取、汇总和可视化信息。
- 使用 ANOVA 表进行模型比较,并通过高效语法更新现有模型。
- 使用适当的族和链接函数(如逻辑回归、概率单位、泊松分布)拟合广义线性模型(GLMs)。
🔹 第 9 课:高阶与低阶图形可视化数据
概述: 本课介绍 R 的全面图形功能,区分高阶绘图函数(创建完整图表)与低阶命令(向已有显示添加特定元素)。学生将学习如何操控图形参数以实现精确的美学控制,并管理多个图形环境。
学习成果:
- 区分并实现高阶(如
plot()、hist())与低阶(如points()、lines())图形函数。 - 使用永久性(
par())和临时性(函数级)条件设置来应用和管理图形参数。 - 协调复杂布局,包括多变量数据展示和多图环境。
🔹 第 10 课:包生态系统与环境配置
概述: 本课探讨 R 的结构性基础,重点关注包生态系统、CRAN 的作用,以及命名空间在函数管理中的机制。同时提供通过多种接口运行 R 的实用路线图,并掌握通过命令行参数和快捷键配置 R 环境的方法。
学习成果:
- 理解包、命名空间与 CRAN 仓库系统之间的关系。
- 执行一个完整的“示例会话”,涵盖数据操作、统计建模和复杂数学绘图。
- 使用命令行标志和环境变量配置 R 启动环境。