数据挖掘与R语言

第1讲:R语言数据分析概述

2026年08月31日

本讲导览

Introduction

  • 一、课程导论与规范说明 ——课程定位、成绩怎么算
  • 二、数据分析基本概念 ——用财务案例说清楚"数据分析是什么"
  • 三、R语言及R/RStudio安装 ——搭建你的数据分析工作台
  • 四、RStudio界面介绍 ——四象限布局与基础设置
  • 五、R语言基础操作 ——让R成为你的超级计算器
  • 六、课堂总结与Exit Ticket ——检验今天的收获

提示

今天的目标很简单:初步认识R语言、人人跑通第一行代码。讲得多不重要,跟上了才重要。

一、课程导论与规范说明

Course Info

1.1 欢迎来到《数据挖掘与R语言》

随着大数据和人工智能技术的快速发展,财经专业与数据分析、机器学习的结合越来越紧密。R语言作为数据分析的强大工具,在财经领域的应用日益广泛。

这门课想让你成为什么样的人?

不是要把你培养成程序员,而是希望你成为既懂财务、又懂数据的复合型人才——能用数据说话的学术研究人员或职场精英。

结合数字中国、数字经济与智能财务的发展趋势,"财务+技术"能力,既关乎你的个人职业发展,也呼应国家经济数字化转型的大方向。

1.2 课程的五大项目模块

本课程共48学时,围绕五个项目层层递进:

flowchart LR
    A["项目一<br/>R语言基础<br/>12学时"] --> B["项目二<br/>数据准备<br/>8学时"]
    B --> C["项目三<br/>数据清洗<br/>8学时"]
    C --> D["项目四<br/>数据可视化<br/>8学时"]
    D --> E["项目五<br/>简单线性回归<br/>8学时"]

    style A fill:#1a3a5c,color:#fff
    style B fill:#2e5984,color:#fff
    style C fill:#375623,color:#fff
    style D fill:#843c0c,color:#fff
    style E fill:#4b2e83,color:#fff

注记

今天是项目一的第一节课。项目一之后,我们会依次学习数据怎么准备、怎么清洗、怎么画图、怎么建模——每个项目都是下一个的基础。

1.3 成绩怎么算?

平时成绩(50%) + 期末考核(50%),且两项都要达到50分:

平时成绩(50%) 占比 期末考核(50%) 占比
考勤 20% 上机操作 60%
实验报告 50% 理论 40%
课程论文 30%

警告

请假需出示经辅导员签字的请假条;旷课4次以上,平时成绩记为不及格。

1.4 课堂约定

  • 上课靠前集中就坐,形成良好的学习氛围
  • 每次课电子签到,计入考勤
  • 课堂上多提问、多举手——积极参与会计入课堂表现加分
  • 实操环节遇到问题,同桌之间先互相帮助,老师会逐排巡视

提示

教材、参考书、网络课程链接都整理在课程平台里,预习和复习时自行查阅。

二、数据分析基本概念

Data Analysis

2.1 先看数据,再问问题

注记

课堂讨论素材:宁德时代(300750.SZ)2022-2024年营业收入、归母净利润与年末收盘价走势(以2022年为基期,前复权)。

看完这张图,思考一个问题:

"净利润从307亿元涨到507亿元,股价却从393元跌到266元,可能是为什么?"

和同桌讨论2分钟,等下请1-2组分享你们的猜想——不急着找标准答案。

2.2 什么是数据分析?

数据分析的定义

数据分析是从数据中提取有价值信息、支持判断和决策的过程。

回到刚才的案例:股价还受市场预期、行业前景、突发事件等多重因素影响。这正是"数据分析"要帮我们理清的问题——不是拍脑袋猜,而是从数据里找证据。

2.3 数据分析 ≠ 数据挖掘

本课程名为《数据挖掘与R语言》,但主要内容还是"数据分析":

flowchart LR
    A["数据采集"] --> B["数据清洗"]
    B --> C["数据分析"]
    C --> D["数据挖掘"]
    D --> E["决策支持"]

    style A fill:#1a3a5c,color:#fff
    style B fill:#2e5984,color:#fff
    style C fill:#375623,color:#fff
    style D fill:#843c0c,color:#fff
    style E fill:#4b2e83,color:#fff

  • 数据分析侧重"描述已经发生的规律,从数据中寻找对理论的支撑"
  • 数据挖掘侧重"从大量数据中发现新的、可推广的模式或规律"

注记

本课程着重于打好数据分析的基础,虽然项目五会引入简单的建模方法(简单线性回归),但数据挖掘或机器分析方法、算法需要新的课程来完成。

2.4 数据分析的五个基本步骤

flowchart LR
    A["① 明确问题"] --> B["② 数据采集"]
    B --> C["③ 数据清洗"]
    C --> D["④ 数据分析"]
    D --> E["⑤ 结果呈现"]

    style A fill:#1a3a5c,color:#fff
    style B fill:#2e5984,color:#fff
    style C fill:#375623,color:#fff
    style D fill:#843c0c,color:#fff
    style E fill:#4b2e83,color:#fff

记住这五步,以后不管拿到什么数据,先问自己:我现在走到第几步了?

2.5 数据分析在财经领域的真实案例

场景 案例 说明
财务舞弊识别 瑞幸咖啡财务造假 异常交易数据是如何被发现的
债务风险预警 恒大债务风险 财务数据如何反映企业经营风险
消费与市场洞察 淘宝"双十一"实时交易、支付宝风控系统 数据分析在日常商业中的应用

注记

以上案例,感兴趣的同学可以课后自行检索了解细节,也可以作为课程论文的选题参考。

2.6 互动讨论

想一想

你认为在工作中哪些情况可以用数据说话?

(举手说说你的想法,不用担心说得不够"专业")

三、R语言及R/RStudio安装

Workstation

3.1 认识R语言

  • 历史:源于S语言,由新西兰奥克兰大学的Ross Ihaka和Robert Gentleman两位学者于1993年开发。
  • 为什么财经专业学生应该学习R语言
    • 开源免费,不用担心版权和续费
    • 统计计算能力强大
    • 有丰富的数据分析扩展包

提示

可以把 R 理解成汽车的发动机——真正干活的引擎;RStudio驾驶舱——让你舒服地操控引擎。发动机要先装好,驾驶舱才能正常工作。

3.2 R能做什么?——不止是数据分析

很多人以为R只能"跑跑统计、算算平均值",其实R的能力边界远不止于此:

flowchart TD
    R(["R语言"]) --> A["数据分析与建模<br/>统计检验 · 回归与机器学习<br/>时间序列预测"]
    R --> B["可视化与报告<br/>ggplot2数据可视化 · 交互式图表plotly<br/>一键生成Word/PPT/PDF报告"]
    R --> C["应用开发<br/>Shiny交互式网页应用<br/>在线数据看板Dashboard"]
    R --> D["行业专用场景<br/>量化金融与风险建模<br/>地理信息与地图分析 · 网络爬虫与文本挖掘"]

    style R fill:#1a3a5c,color:#fff
    style A fill:#2e5984,color:#fff
    style B fill:#375623,color:#fff
    style C fill:#843c0c,color:#fff
    style D fill:#4b2e83,color:#fff

举几个财经领域的真实例子

  • Shiny做一个"输入本金、利率、期限,自动算出复利终值"的网页小工具,不用写一行HTML/JS
  • R Markdown/Quarto(就是今天课件用的技术)一键把分析结果排版成规范的实习报告或论文
  • quantmod等扩展包抓取股票行情、做量化回测
  • plotly做出可以鼠标悬停查看数值的动态图表,做汇报演示更有说服力
  • 用Quarto创建一个网站,比如我放课件的这个小网站

今天这门课我们只学最基础的"地基"部分——数据准备、清洗、可视化、简单回归。但R的"上层建筑"能盖多高,取决于你打的地基有多牢。

3.3 安装步骤(跟着做)

第一步:安装 R

  1. 登录 CRAN 官网,选择中国镜像加速下载 R 语言官方网站
  2. 运行安装包,全程默认设置
  3. 注意:安装路径不要含中文和空格

第二步:安装 RStudio

  1. 登录 Posit 官网下载桌面版 Posit官方网站
  2. 运行安装包,默认设置即可
  3. RStudio 会自动识别已安装的 R

重要

关键提醒:先装R,再装RStudio! 顺序不能反——RStudio启动时会自动寻找R的安装位置。

3.4 环境避坑指南

坑点 现象 解决方法
中文用户名 电脑用户名是中文(如 C:\Users\张三\...),装包或加载包时极易报错 提前检查,必要时改用英文用户名,或安装到不经过用户名路径的目录
工作目录含中文/空格 后续读写文件报错 装完后在RStudio用 Session → Set Working Directory 设置一个干净的目录

警告

教室用机已经安装好了R和RStudio,并配置好了环境,可以直接使用。同学们如果有自己的个人电脑,建议大家按照这个提示进行安装,后续在课后可以方便大家练习代码。

3.5 互助与验证

现在动手装!

打开手机或电脑浏览器,按刚才的步骤安装。装完的同学请举手——我们来清点一下安装成功率。

已经装好的同学,请转身帮助左右两边还没装好的同学。 这是这门课的第一次"同伴互助"。

想一想:为什么必须先装R,再装RStudio?

四、熟悉 RStudio 界面

四象限布局与基础设置

4.1 四象限布局

flowchart TD
    subgraph rstudio["RStudio 界面"]
        A["📝 左上:Source Editor(脚本编辑区)<br/>写代码、保存为 .R 文件"]
        B["⌨️ 左下:Console(控制台)<br/>代码在这里运行,结果在这里显示"]
        C["🗂️ 右上:Environment / History<br/>已创建的变量、执行过的命令"]
        D["📊 右下:Files / Plots / Help<br/>文件管理、图形预览、帮助文档"]
    end

    style A fill:#1a3a5c,color:#fff
    style B fill:#375623,color:#fff
    style C fill:#843c0c,color:#fff
    style D fill:#4b2e83,color:#fff

用"拍电影"来理解四象限

把写代码想象成拍一部电影,你自己就是导演+制片人,统筹全局:

  • 📝 左上·脚本区(Source Editor):这是剧本。你在这里字斟句酌地写好台词和分镜(代码),可以反复修改,写完保存成 .R 剧本文件,不急着开拍
  • ⌨️ 左下·控制台(Console):这是现场拍摄。剧本里的台词被念出来、动作被执行,结果当场呈现,拍得好不好立刻见分晓
  • 🗂️ 右上·环境区(Environment):这是片场的道具与演员登记表。已经"请"进片场的变量、数据(相当于演员和道具)都在这里留有记录,随时可以查看
  • 📊 右下·成片区(Files / Plots / Help):这是剪辑室与资料室。拍摄出来的图表(成片)在这里展示,找不到词儿了还能翻"场记手册"(Help文档)

4.2 速记口诀

在自己电脑上现场指认一下这四个区域:

"左上写,左下跑;右上查,右下瞧"

注记

左上(写代码)→ 左下(代码跑起来)→ 右上(查看变量)→ 右下(瞧图形和帮助)。记住这句口诀,以后找面板不会懵。

4.3 基础设置

装好之后,先做两件小事:

▶️ 查看代码
# 查看当前工作目录
getwd()

# 设置工作目录(如果需要)
setwd("D:/R")

还可以调整界面主题,让眼睛舒服一点:

Tools → Global Options → Appearance

五、R语言基础操作

让R成为你的超级计算器

5.1 基本运算 —— "R是一门超级计算器"

▶️ 查看代码
1 + 2      # 加法
[1] 3
▶️ 查看代码
5 - 3      # 减法
[1] 2
▶️ 查看代码
4 * 6      # 乘法
[1] 24
▶️ 查看代码
10 / 3     # 除法
[1] 3.33
▶️ 查看代码
10 %/% 3   # 整除
[1] 3
▶️ 查看代码
10 %% 3    # 取余
[1] 1

课堂练习

心算一下这几道题,再在Console里验证:7 + 8100 / 6 的整除和余数分别是多少?

5.2 复杂运算与财务场景化 —— "R比你想象的更聪明"

▶️ 查看代码
2 ^ 3       # 乘方(2的3次方)
[1] 8
▶️ 查看代码
2 ** 3      # 另一种写法,结果一样
[1] 8
▶️ 查看代码
sqrt(16)    # 开方
[1] 4
▶️ 查看代码
16 ^ (1/2)  # 分数幂也是开方
[1] 4
▶️ 查看代码
log(100)    # 自然对数(ln)
[1] 4.61
▶️ 查看代码
log10(100)  # 常用对数(lg)
[1] 2
▶️ 查看代码
log2(8)     # 以2为底的对数
[1] 3

财务场景化:乘方不仅是数学运算,也是复利计算的核心

▶️ 查看代码
# 本金10000元,年利率5%,存3年后的本息和
10000 * (1 + 0.05)^3
[1] 11576

课堂练习

计算 sqrt(81) + log10(1000),结果应该是多少?

5.3 生成数列 —— "让R帮你自动造数"

▶️ 查看代码
1:10                        # 连续整数
 [1]  1  2  3  4  5  6  7  8  9 10
▶️ 查看代码
seq(0, 20, by = 2)          # 0到20,步长2
 [1]  0  2  4  6  8 10 12 14 16 18 20
▶️ 查看代码
rep(c(1, 2, 3), times = 3)  # 整个向量重复3次
[1] 1 2 3 1 2 3 1 2 3
▶️ 查看代码
rep(c(1, 2, 3), each = 3)   # 每个元素重复3次
[1] 1 1 1 2 2 2 3 3 3
▶️ 查看代码
runif(10, 1, 100)              # 10个1~100之间的随机数
 [1] 36.05 33.43 73.63 62.41 16.82 35.59 71.24  2.96 69.02  8.97
▶️ 查看代码
rnorm(10)                      # 10个标准正态分布随机数
 [1] -0.0377 -1.7969 -1.3621 -0.5711 -0.9401 -1.1185  0.7301  0.3778  0.4995
[10]  0.7856
▶️ 查看代码
rnorm(10, mean = 5, sd = 0.9)  # 10个正态分布随机数(指定均值和方差)
 [1] 5.55 3.31 3.96 5.36 4.74 4.65 7.16 4.96 4.99 5.96
▶️ 查看代码
sample(1:10, 5)                # 从1~10中随机抽5个(不重复)
[1] 6 3 7 4 5
▶️ 查看代码
sample(1:10, 5, replace = TRUE) # 随机抽5个(可以重复)
[1]  9  7 10  5  3

5.4 模拟小游戏 —— "R陪你玩游戏"

a) 石头剪刀布:

▶️ 查看代码
choices <- c("石头", "剪刀", "布")
sample(choices, 1)   # R来出拳!
[1] "剪刀"

b) 掷骰子:

▶️ 查看代码
sample(1:6, 1)                 # 掷一个骰子
[1] 5
▶️ 查看代码
sample(1:6, 2, replace = TRUE) # 同时掷两个
[1] 6 1

提示

多运行几次,看看每次结果是不是都不一样——这就是"随机抽样"。

5.5 互动小程序 —— "让R对你说你好"

#| eval: false
#| echo: true
print("你好!欢迎来到R语言的世界!")

name <- readline("请问你叫什么名字? ")
cat("欢迎", name, "同学!让我们一起探索数据的世界吧!")

注记

readline() 需要在RStudio的Console里实际输入才能运行,幻灯片里无法演示交互过程。现在请打开RStudio,把这三行代码敲进去,亲手运行一遍,看看能不能看到专属于你的欢迎语。

六、课堂总结与Exit Ticket

检验今天的收获

6.1 本讲知识回顾

  • 今天的内容串联起来:导论 → 概念 → 安装 → 界面 → 操作 → 总结
  • RStudio四象限记忆口诀:"左上写,左下跑;右上查,右下瞧"
  • 课程考核制度:平时50% + 期末50%,缺勤4次平时不及格
  • 数据分析是从数据中提取有价值信息、支持判断决策的过程,和数据挖掘不是一回事
  • R的基本运算、数列生成、随机抽样,是后面所有数据分析操作的地基

6.2 学习成果自查

对照一下,今天这五件事你都做到了吗?

  • ✓ 能说出"数据分析"与"数据挖掘"的区别
  • ✓ 已成功安装R与RStudio
  • ✓ 能认出RStudio的四象限界面
  • ✓ 成功运行了第一段R代码
  • ✓ 完成了一次简单的财务计算(复利终值)

提示

如果有没打勾的,下课后一定要找同学或老师补上,不要留到下一讲。

6.3 Exit Ticket —— 写给自己的三个问题

请花1分钟,在纸条或在线问卷上简要回答:

  1. R是什么?RStudio是什么?两者是什么关系?
  2. 今天你最有把握的一个操作是什么?
  3. 今天最有趣的环节是什么?

注记

这不是考试,是帮你自己梳理今天学到了什么,也帮老师了解下节课该怎么调整节奏。

课后作业

软件环境与界面认知

  1. 在个人电脑上完成R和RStudio的安装,截屏RStudio四象限界面,在截图上用文字标注四个分区名称和功能
  2. 在Console中执行"石头剪刀布"模拟,截屏运行结果

课后作业(续)

基础运算练习

在RStudio控制台中完成以下运算并保留代码与结果:

  1. 1234 + 5678
  2. 9876 - 5432
  3. 123 * 456
  4. 1000 / 7(分别用/%/%%%三种方式)
  5. 2的10次方
  6. sqrt(144)
  1. log(100)log10(100)(比较两个结果)
  2. 生成1到20的连续数列
  3. 生成10个1到100之间的随机整数
  4. 生成序列:0, 2, 4, ..., 20
  5. 编写并运行"打招呼"交互程序
  6. 财务小练习:本金20000元,年利率4%,存5年,计算复利终值

提交要求

本次作业各自练习,暂不提交。

下讲预告

第2讲:R语言的数据类型与数据对象

  • R语言的数据类型:数值、字符、逻辑等
  • 核心数据对象:向量、因子、数据框
  • 矩阵、复数等专题内容将在后续数据结构章节中系统讲解

提示

课前准备:预习教材第2章:R语言数据操作基础

谢谢!

Thanks

第1讲:R语言数据分析概述

"In God we trust; all others must bring data."

— W. Edwards Deming,质量管理与统计学家

朱 奇 | 锦城大学 · 财会学院