R语言入门 | R中数据那点事

前面介绍了R的统计函数,有好多小伙伴通过留言反馈,说对R语言的数据结构还不是很清楚,今天我们就聊一下R中关于数据那点事。

首先要回答下面几个问题:

  • atomic vector的常用基本类型是什么?
  • list和atomic vector有哪些不同?
  • matrix和data frame有什么不同?
  • data frame的列可以保存list吗?
  • data frame的每一行或者每一列的长度可以不一致吗?
  • 如何将factor正确地转换为数字?

回答上面的问题,你差不多就大题了解了一些;

1.R语言数据结构是个啥?

R的数据结构是数据类型的封装方式,就是怎么把各种数据类型的数据组合起来,储存相同类型的数据的(同质的),储存不同类型的数据的(异质的),

在R中数据类型被分为字符型(character), 浮点型(double),整数型 (integer)以及逻辑型(logical)

浮点型及整数型类型又被统一称为数值型。如果数据都为字符型,或者数值型,或者逻辑型,就被称为同质的,否则被称为异质的

R语言的数据结构

说到这,想必大家对R中的数据有了很深的了解,R也很贴心,有大量的R的内置数据集:

R语言内置数据集,隐藏的秘密

  1. Vectors

无论是atomic vector还是list,都属于vector。这两者构成了R最基本的两大类数据结构。

Atomic vector与list的区别在于,前者的元素都必须是由同一数据类型组成的,也就是说atomic vector都是同质的,而list中的元素可以是异质的

在任何时候,c( )函数都是可以构建向量,下面是R中内置的向量数据包:

R中的数据包 数据内容
euro 欧元汇率,长度为11,每个元素都有命名
landmasses 48个陆地的面积,每个都有命名
precip 长度为70的命名向量
rivers 北美141条河流长度
state.abb 美国50个州的双字母缩写
state.area 美国50个州的面积
state.name 美国50个州的全称
  1. Factor

Factor是R中非常具有特点的一类atomic vector。

  • Factor是atomic vector,所以它的所有元素必须是同质的,准确地讲其基础类型应该是character。
  • Factor又不同于普通的character型atomic vector。
  • Factor是将相同字符归类后使用特定格式存放的数据。
  • 它有levels()方法,可以得到一个factor中所有的水平(去除重复后所有的元素)。

创建因子向量分为三个步骤:

  1. 将输入的数据转换成character型;

  2. 对所有的水平进行排序(可能是指定的排序,或者自然排序),将排序后的水平保存在levels中;

  3. 使用levels中的水平序列号重新编码输入的元素。

注意:

  1. Factor的值必须是levels中包含的值,否值无法对其编码。

  2. 如果想修改factor中所有等于某值的数据为level中不存在的另一数值,应该直接修改其levels。

下面是R中内置的因子向量数据包:

R中的数据包 数据内容
state.division 美国50个州的分类,9个类别
state.region 美国50个州的地理分类
  1. Matrices and Data Frame

简单的讲,给atomic vector加上维度信息,它就变成了数组array。如果维度信息是二维的,它就是matrix。也就是说,matrix只是array的一个特例,而array是从atomic vector扩展而来的。

让我们创建一个matrix

#利用matrix()函数构建矩阵
a <- 1:12
mat <- matrix(a, ncol=3, nrow=4) ##ncol == number of column, nrow == number of row
mat

DataFrame

Data frame是R中最常被用到的数据结构。Data frame就是由一系列长度相等的vectors构成。访问某一列可以使用’$’符号,它是2维的,它一样也有和matrix相同的方法,比如colnames(), rownames(), rbind(), cbind(), dim(), ncol(), nrow()等。

下面列出了R中的矩阵,数据框的数据包:

R中的数据包(矩阵,数据框) 数据内容
euro.cross 11种货币的汇率矩阵
freeny.x 每个季度影响收入四个因素的记录
state.x77 美国50个州的八个指标
USPersonalExpenditure 5个年份在5个消费方向的数据
VADeaths 1940年弗吉尼亚州死亡率(每千人)
volcano 某火山区的地理信息(10米×10米的网格)
WorldPhones 8个区域在7个年份的电话总数
iris3 3种鸢尾花形态数据
Titanic 泰坦尼克乘员统计
UCBAdmissions 伯克利分校1973年院系、录取和性别的频数
crimtab 3000个男性罪犯左手中指长度和身高关系
HairEyeColor 592人头发颜色、眼睛颜色和性别的频数
occupationalStatus 英国男性父子职业联系
airquality 纽约1973年5-9月每日空气质量
anscombe 四组x-y数据,虽有相似的统计量,但实际数据差别较大
attenu 多个观测站对加利福尼亚23次地震的观测数据
attitude 30个部门在七个方面的调查结果,调查结果是同一部门35个职员赞成的百分比
beaver1 一只海狸每10分钟的体温数据,共114条数据
beaver2 另一只海狸每10分钟的体温数据,共100条数据
BOD 随水质的提高,生化反应对氧的需求(mg/l)随时间(天)的变化
cars 1920年代汽车速度对刹车距离的影响
chickwts 不同饮食种类对小鸡生长速度的影响
esoph 法国的一个食管癌病例对照研究
faithful 一个间歇泉的爆发时间和持续时间
Formaldehyde 两种方法测定甲醛浓度时分光光度计的读数
Freeny 每季度收入和其他四因素的记录
dating from 配对的病例对照数据,用于条件logistic回归
InsectSprays 使用不同杀虫剂时昆虫数目
iris 3种鸢尾花形态数据
LifeCycleSavings 50个国家的存款率
longley 强共线性的宏观经济数据
morley 光速测量试验数据
mtcars 32辆汽车在11个指标上的数据
OrchardSprays 使用拉丁方设计研究不同喷雾剂对蜜蜂的影响
PlantGrowth 三种处理方式对植物产量的影响
pressure 温度和气压
Puromycin 两种细胞中辅因子浓度对酶促反应的影响
quakes 1000次地震观测数据(震级>4)
randu 在VMS15中使用FORTRAN中的RANDU三个一组生成随机数字,共400组。该随机数字有问题。在VMS20以上版本已修复。
rock 48块石头的形态数据
sleep 两药物的催眠效果
stackloss 化工厂将氨转为硝酸的数据
swiss 瑞士生育率和社会经济指标
ToothGrowth VC剂量和摄入方式对豚鼠牙齿的影响
trees 树木形态指标
USArrests 美国50个州的四个犯罪率指标
USJudgeRatings 43名律师的12个评价指标
warpbreaks 织布机异常数据
women 15名女性的身高和体重

好多的数据集等你去挖掘,这只是冰山一角。更多内容在

R语言系列:探索R自带数据包

总结一下:

image-20210110213208381

今天,小编就讲到这里了,喜欢的小伙伴欢迎,点赞,留言,转发,收藏哦,期待你的互动。

Comments are closed.