R语言数据类型和内置数据集那点事

2021-02-03 15:53:10 浏览数 (1)

前面介绍了R的统计函数,见: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

代码语言:javascript复制
#利用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自带数据包

总结一下:

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

后起之秀奔涌而至,欢迎大家在《生信技能树》的舞台分享自己的心得体会!

上面是新晋小编“十年”的稿件

再怎么强调生物信息学数据分析学习过程的计算机基础知识的打磨都不为过,我把它粗略的分成基于R语言的统计可视化,以及基于Linux的NGS数据处理

  • 生信分析人员如何系统入门R(2019更新版)
  • 生信分析人员如何系统入门Linux(2019更新版)

把R的知识点路线图搞定,如下:

  • 了解常量和变量概念
  • 加减乘除等运算(计算器)
  • 多种数据类型(数值,字符,逻辑,因子)
  • 多种数据结构(向量,矩阵,数组,数据框,列表)
  • 文件读取和写出
  • 简单统计可视化
  • 无限量函数学习

0 人点赞