京公网安备 11010802034615号
经营许可证编号:京B2-20210330
作者:丁点helper
来源:丁点帮你
今天开始学习在R语言中做描述性统计。为了便于大家边学边练,可以下载这个数据:
文件名:titanic.csv
链接:https://pan.baidu.com/s/1Pj0EsaBZdnw6mHPpeVd9Aw
密码: yuym
将本地文件导入到R中
为了便于数据管理和操作,我们通常会把数据保存为.csv格式,这是excel中的一种较为简单的数据格式。想要把一个.csv格式的数据导入R,可以用read.csv()这个函数:
# 将本地文件titanic.csv导入到R中,
# 并存储到titanic这个对象中titanic
<- read.csv("//Users//Desktop//titanic.csv",header = TRUE)
假设该本地文件存储的是1912年沉没于大西洋的巨型邮轮泰坦尼克号中乘客的基本信息。
上面第一个命令"//Users//Desktop//titanic.csv"是文件titanic.csv的本地存储地址,大家要根据自己电脑的存储位置自行调整;
第二个命令header = TRUE 是指将原文件中的第一行自动设置为文件的列名。
如果你的.csv文件中并无列名,而是希望在导入R之后再设置,则应将第二个命令设置为header = FALSE。
了解数据
上篇文章讲过,拿到一个数据库,首先要了解它的基本信息。之前已经讲过,我们简单复习一下。
class(titanic) #对象是什么数据结构[1] "data.frame"dim(titanic) #查看数据有几行几列[1] 1309 6names(titanic) #查看数据的列名[1] "pclass" "survived" "sex" "age" "sibsp" "parch" head(titanic) #查看前6行tail(titanic) #查看后6行
可以知道,titanic这个数据框中有1309条记录,6个变量。
这6个变量依次为舱位等级、是否幸存、性别、年龄、同行的兄弟姐妹或配偶数量、同行的父母或子女数量。
描述性统计
接下来我们来对titanic这个数据做描述性统计。
1. 每个等级的船舱中分别有多少人?
有两种方法,一是table()函数,用于统计分类变量pclass中各类别的频数;二是summary()函数,功能是做描述性统计,既适用于分类也适用于计数变量,可以用来统计分类变量的频数、计算计数变量的均数、百分位数等。
# 方法一table(titanic$pclass) 1st 2nd 3rd 323 277 709# 方法二summary(titanic$pclass) 1st 2nd 3rd 323 277 709
2. 遇难者与幸存者分别有多少人?
table(titanic$survived) died survived 809 500
3. 每个等级的舱位中分别有多少人遇难、多少人幸存?
本例中,按照『舱位等级』和『是否幸存』两个条件统计乘客状况,共6种可能。仍使用table()函数,统计每种可能的状况分别有多少人,生成交叉列联表。
# 将列联表存储在tab1中tab1 <- table(titanic$survived,titanic$pclass) # 查看tab1的内容tab1 1st 2nd 3rd died 123 158 528 survived 200 119 181
4. 每个等级的舱位中幸存者的比例是多少呢?
思路很简单,就是每等级舱位中幸存者的人数占该舱位总人数的比例。
1)那我们先看看每等级舱位中幸存者的人数怎么算,上面的tab1第二行就是,只需要将其提取出来,方法和前面讲过的如何提取数据框中的行和列相同:
#提取tab1的第二行tab1[2, ] 1st 2nd 3rd 200 119 181
2)每种舱位总人数?上面也已经计算过:
table(titanic$pclass) 1st 2nd 3rd 323 277 709
还有一种方法,使用apply()函数,功能是对矩阵类数据的行或列进行批量处理:
apply(tab1,2,sum) 1st 2nd 3rd 323 277 709
函数中有三个命令。第一个命令tab1表示待处理的数据;第二个命令2表示对tab1的每一列进行处理,若需处理每一行,则第二个命令应输入数字1;第三个命令sum表示求和。
因此,上述语句的意义为:对tab1中的每一列求和,即计算每个等级舱位中的总人数。
3)求每等级舱位中幸存者的人数占该舱位总人数的比例:
# 方法一 tab1[2, ]/table(titanic$pclass) 1st 2nd 3rd 0.6191950 0.4296029 0.2552891 # 方法二 tab1[2, ]/apply(tab1,2,sum) 1st 2nd 3rd 0.6191950 0.4296029 0.2552891
4)你一定也发现了,这个结果非常不美观,也不适合在科研工作中报告。我们做以下变化:
# 先乘以100 tab1[2, ]/apply(tab1,2,sum)*100 1st 2nd 3rd 61.91950 42.96029 25.52891 # 保留2位小数 round(tab1[2, ]/apply(tab1,2,sum)*100,2) 1st 2nd 3rd 61.92 42.96 25.53
round()函数的功能是保留小数位数。
上面的代码中,第一个命令tab1[2, ]/apply(tab1,2,sum)*100 是需要保留小数的对象;
第二个命令2是指保留2位小数。
5)可是这个结果显然不对,加上百分号%才是准确的。需要用到paste()函数,该函数的功能是把各种元素连接起来,本例中,我们希望把数字和百分号连接:
paste(round(tab1[2, ]/apply(tab1,2,sum)*100,2),"%",sep="") "61.92%" "42.96%" "25.53%"
第一个命令round(tab1[2, ]/apply(tab1,2,sum)*100,2) 就是上面计算好的百分数的数字部分,这是要连接的第一部分;
第二个命令"%" 是要连接的第二部分;
第三个命令sep="" 指两个元素之间的连接符号,这里我们不需要任何连接符号,所以引号""之间什么都不用写。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
机器学习的本质,是让模型通过对数据的学习,自主挖掘规律、实现预测与决策,而这一过程的核心驱动力,并非单一参数的独立作用, ...
2026-03-27在SQL Server数据库操作中,日期时间处理是高频核心需求——无论是报表统计中的日期格式化、数据筛选时的日期类型匹配,还是业务 ...
2026-03-27在CDA(Certified Data Analyst)数据分析师的能力体系与职场实操中,高维数据处理是高频且核心的痛点——随着业务场景的复杂化 ...
2026-03-27在机器学习建模与数据分析实战中,特征维度爆炸、冗余信息干扰、模型泛化能力差是高频痛点。面对用户画像、企业经营、医疗检测、 ...
2026-03-26在这个数据无处不在的时代,数据分析能力已不再是数据从业者的专属技能,而是成为了职场人、管理者、创业者乃至个人发展的核心竞 ...
2026-03-26在CDA(Certified Data Analyst)数据分析师的能力体系中,线性回归是连接描述性统计与预测性分析的关键桥梁,也是CDA二级认证的 ...
2026-03-26在数据分析、市场研究、用户画像构建、学术研究等场景中,我们常常会遇到多维度、多指标的数据难题:比如调研用户消费行为时,收 ...
2026-03-25在流量红利见顶、获客成本持续攀升的当下,营销正从“广撒网”的经验主义,转向“精耕细作”的数据驱动主义。数据不再是营销的辅 ...
2026-03-25在CDA(Certified Data Analyst)数据分析师的全流程工作中,无论是前期的数据探索、影响因素排查,还是中期的特征筛选、模型搭 ...
2026-03-25在当下数据驱动决策的职场环境中,A/B测试早已成为互联网产品、运营、营销乃至产品迭代优化的核心手段,小到一个按钮的颜色、文 ...
2026-03-24在统计学数据分析中,尤其是分类数据的分析场景里,卡方检验和显著性检验是两个高频出现的概念,很多初学者甚至有一定统计基础的 ...
2026-03-24在CDA(Certified Data Analyst)数据分析师的日常业务分析与统计建模工作中,多组数据差异对比是高频且核心的分析场景。比如验 ...
2026-03-24日常用Excel做数据管理、台账维护、报表整理时,添加备注列是高频操作——用来标注异常、说明业务背景、记录处理进度、补充关键 ...
2026-03-23作为业内主流的自助式数据可视化工具,Tableau凭借拖拽式操作、强大的数据联动能力、灵活的仪表板搭建,成为数据分析师、业务人 ...
2026-03-23在CDA(Certified Data Analyst)数据分析师的日常工作与认证考核中,分类变量的关联分析是高频核心场景。用户性别是否影响商品 ...
2026-03-23在数据工作的全流程中,数据清洗是最基础、最耗时,同时也是最关键的核心环节,无论后续是做常规数据分析、可视化报表,还是开展 ...
2026-03-20在大数据与数据驱动决策的当下,“数据分析”与“数据挖掘”是高频出现的两个核心概念,也是很多职场人、入门学习者容易混淆的术 ...
2026-03-20在CDA(Certified Data Analyst)数据分析师的全流程工作闭环中,统计制图是连接严谨统计分析与高效业务沟通的关键纽带,更是CDA ...
2026-03-20在MySQL数据库优化中,分区表是处理海量数据的核心手段——通过将大表按分区键(如时间、地域、ID范围)分割为多个独立的小分区 ...
2026-03-19在商业智能与数据可视化领域,同比、环比增长率是分析数据变化趋势的核心指标——同比(YoY)聚焦“长期趋势”,通过当前周期与 ...
2026-03-19