R学习笔记系列

您所在的位置:网站首页 r语言数据框改名 R学习笔记系列

R学习笔记系列

2022-06-12 15:50| 来源: 网络整理| 查看: 265

R学习笔记系列—R语言数据结构之数据框和列表 wbingyang wbingyang

2017-08-31

关注 关注

1.4.5 数据框

向量、矩阵和数组只能存储同一类型的数据,这显然无法满足数据分析需求。我们需要更加灵活的,能把各种不同类型数据组织在一起的数据结构。在 R 中,这主要由数据框和列表来完成。

数据框和矩阵类似,都是以行和列的形式来存储数据,但矩阵各列必须是同一数据类型,数据框则可以将不同的数据类型结构组合在一起。

如果读者熟悉关系型数据库或者 Excel 表格,则可以看到其表结构和数据框的相似性,都是以 n m 表格形式来组织数据。事实上, n m 表格是进行数据分析最重要的数据结构,使用非常广泛,在不同的情境下有不同的名称。比如一般情况下我们就称之为 行(row) 和 列(column),统计分析领域称之为 观测(observation) 和 变量(variable),数据库管理领域则称之为 记录(record)和 字段(field),机器学习领域则称之为 示例(example) 和 属性(attribute)。

R 数据框是我们今后组织数据的主要结构,可以通过 data.frame() 函数来创建数据框,但要注意应遵循以下规则:

列可以是向量(数值型、因子型、逻辑型),还可以是矩阵、列表或者其它数据框。

数值型、逻辑型、因子型向量保持原样,但字符型会被自动编码成因子型。因为采用默认的参数,所以若需要自定义因子的编码规则,请首先将字符型向量通过 factor() 函数转化成因子型后再放入数据框。

列向量必须具有相同的长度,若是矩阵,则其行数必须和其它向量的长度一致。

矩阵、数据框和列表为数据框提供了尽可能多的变量,因为它们各自拥有列、变量或者属性。

R学习笔记系列—R语言数据结构之数据框和列表

数据框可以通过其下标访问。

R学习笔记系列—R语言数据结构之数据框和列表

除了下标外,还可以用 $ 符号直接引用列变量。

R学习笔记系列—R语言数据结构之数据框和列表

用 $ 符号访问对象不是很方便,比如 students$weight 和 students$height,每次都要键入一遍数据框名称,比较繁琐。在 R 中有两种方法可以解决这个问题:一是用 attach() 和 detach() 函数,二是用 with() 或 within()函数。

attach() 函数可将数据框添加到R的搜索路径中,使得可以直接通过变量名访问数据框中的变量。detach()函数可将数据框移出搜索路径。一个建议是,attach() 应和 detach() 成对使用,以免造成变量名污染。

R学习笔记系列—R语言数据结构之数据框和列表

with() 函数提供了另外一种思路,可以通过其将上述例子改写如下:

R学习笔记系列—R语言数据结构之数据框和列表

within() 函数与 with() 作用类似,但是允许修改数据框的数据。

R学习笔记系列—R语言数据结构之数据框和列表

对于这两种方法,强烈建议使用 with() 或 within() 函数,因为其语义明确,不会导致变量名污染。而 attach() 函数容易导致变量名冲突,若在调用 attach() 函数之前,环境中已经存在了 age 变量,则会导致冲突,这时候 R 会保留已经存在对象,而忽略 attach() 函数附加数据框中的变量,从而导致一些很难察觉的错误。尤其是在编写大型程序、变量名非常多的时候,更要尽量减少 attach() 函数的使用。

R学习笔记系列—R语言数据结构之数据框和列表

如果数据框数据比较多,可以通过 head() 函数显示头部数据,tail() 函数显示尾部数据。

R学习笔记系列—R语言数据结构之数据框和列表

1.4.6 列表

列表是一个对象的有序集合,列表中包含的对象称之为分量。列表可以通过 list() 函数创建。数据框实际上是列表的一种特殊形式,数据框由行和列构成,列可以是向量还可以是矩阵、列表或者其它数据框,但都要求其具有相同的行数。但数据框不受此限制,其分量可以是任何类型的对象,也不要求具有相同的长度或者行数。事实上,如果熟悉 Java 或 c# 之类的编程语言的话,会发现列表其实就是一种 字典*(Dictionary) 结构,比如 c# 中的 Dictionary

列表在数据组织中并不多用,但在 R 内部,很多分析过程的中间结果都用列表来保存,因此若要开发自己的 R 包,或者一步一步探究分析过程,就需要用到列表。因为数据框本质上是列表的一种,因此两者有很多相似之处,前面介绍的用于数据框的技巧也适用于列表。

R学习笔记系列—R语言数据结构之数据框和列表

喜欢闲适安静的生活,懂一点计算机编程,懂一点统计学和数据分析。(爱编程爱统计)

数据结构 大数据 矩阵 r语言



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3