R语言数据对象类型

Python013

R语言数据对象类型,第1张

在R中尽量使用 <- 进行赋值, <- 更标准。在R中使用 = 进行赋值可能会出现错误(有些函数会将其解释为判断)——因为R起源于S语言,S语言的定义如此。

模式-使用mode()可以查看对象的数据类型

长度-使用length()可以查看对象的长度

标量可以是数字、字符、逻辑值等。

结果

向量可以由单个或多个值组成,多值的向量只能由相同类型的值组成,有一维和多维向量。

向量用于存储数值型、字符型、逻辑型数据

is.na()判断是否为缺失值,返回一个逻辑性向量

将自变量连接成一个字符串。

一般的使用形式是paste (..., sep = " ", collapse = NULL), ... 表示想要连接的不同自变量,sep表示不同自变量之间添加的符号,collapse打开之后表示将整个自变量变成一个单一的变量

对对象进行重复

在统计学中,按照变量值是否连续把变量分为连续变量与离散变量两种。分类变量是说明事物类别的一个名称,其取值是分类数据。变量值是定性的,表现为互不相容的类别或属性。因子就是一类分类离散变量。

因子是带有水平(level)的向量。

factor()函数一般形式为:

可以用来筛选因子的level

Table()函数对应的就是统计学中的列联表,是一种记录频数的方法。对于因子向量,可用函数table()来统计各类数据的频率。Table()的结果是一个带元素名的向量,元素名为因子水平,元素值为该水平的出现频率。

tapply()是对向量中的数据进行分组处理,而非对整体数据进行处理。函数一般形式为:

gl()函数可以方便地产生因子,函数一般形式为:

矩阵是一个二维数组,只是每个元素都拥有相同的数据类型(数值型、字符型或逻辑型)。注意与数据框的差别,数据框不同列的数据类型可以不同。

函数matrix ()是构造矩阵(二维数组)的函数,其构造形式为:

数组与矩阵类似,但是维度可以大于2。数组有一个特征属性叫做维数向量(dim属性),维数向量是一个元素取正整数值的向量,其长度是数组的维数,比如维数向量有两个元素时数组为二维数组(矩阵)。维数向量的每一个元素指定了该下标的上界,下标的下界总为1。

R软件可以用array()函数直接构造数组,其构造形式为:

数据框与矩阵类似,为二维,其数据框中各列的数据类型可以不同,但是长度必须一样。数据框在生物数据中用得比较多,是非常重要的一类数据类型。

数据框与矩阵不同的是数据框不同的列可以是不同的数据类型,并且数据框假定每列是一个变量,每行是一个观测值。

作为数据框变量的向量、因子或矩阵必须具有相同的长度(行数)。数据框可以用data.frame()函数生成,其用法与list()函数相同。

data.frame(col1,col2,col3.....)其中列向量col1,col2等可以是任何类型的向量

列表可以储存不同类型的数据,是一些对象的有序集合。它的元素也由序号(下标)区分,但是各元素的类型可以是任意对象,不同元素不必是同一类型。元素本身允许是其他复杂数据类型。比如一个列表的元素也允许是一个列表。

R软件中利用函数list()构造列表,一般语法为:

Lst<-list(name_1=object_1,…, name_1=object_m)

其中name是列表元素的名称;object_i(i=1,…,m)是列表元素的对象。

unlist()函数:将list函数拉直成一个向量

数据框DataFrame提出一列(假设名为OneColumn)之后,用DataFrame$OneColumn或者DataFrame[, "OneColumn"]或DataFrame[["OneColumn"]],在默认值drop=True情况下会自动退化为向量。如果用DataFrame["OneColumn"]则提取的为仅有OneColumn列的数据框,其实质仍为列表。

R语言的对象(Objects)主要包括向量、矩阵、数组、数据框和列表。

向量(vector)是R语言中最基本的数据类型,执行组合功能的函数c()可用来创建向量。

数据框(Data Frames)是一种特殊的列表,其中所用元素长度都相等,列表中的每个元素都可以看作一列,每个元素的长度可以看作行数。

数据准备

向一个数值型向量中添加一个字符串会将此向量中的所有元素转换为字符型。

is.datatype()用于判断数据类型,返回值为TRUE或FALSE,常见类型包括数值型numeric、字符型character、逻辑型logical、数据框data.frame等。 as.datatype()可将数据类型进行转化。

查看数据类型:mode(), class(), typeof(), storage.mode()

逻辑值转换成数值时,TRUE转换成1,FALSE转换成0。

函数:order(x,decreasing=F,na.last=NA)

x是要排序的数据,可以是数据框也可以是向量,decreasing=F是默认升序,在排序变量前加一个减号可得到降序排序结果,na.last =NA表示将NA元素移到最后,否则,将NA放在第一个。

函数:cbind(A, B) ,不需要指定一个公共索引对数据框进行合并。

cbind:根据列进行合并,即叠加所有列,m列的矩阵与n列的矩阵cbind()最后变成m+n列,合并前提:cbind(a, c)中矩阵a、c的行数必需相符。

merge(A, B) :横向合并两个数据框(数据集),在多数情况下,两个数据框是通过一个或多个共有变量进行联结的(即一种内联结,inner join)。

rbind(A, B) :纵向合并两个数据框(数据集),两个数据框必须拥有相同的变量,不过它们的顺序不必一定相同。

rbind:根据行进行合并,就是行的叠加,m行的矩阵与n行的矩阵rbind()最后变成m+n行,合并前提:rbind(a, c)中矩阵a、c的列数必需相符。

函数:dataframe[row indices, column indices] dataframe为要索引的数据框,[]中,前面的是行,后面是列。

在某一列或行的下标之前加一个减号(-)就会剔除那一列或行。

subset(x, subset, select, drop = FALSE, ...)

x是要进行操作的数据框,subset是对数据的某些字段进行操作,select是选取要显示的字段。

sample(x, size, replace = FALSE, prob = NULL)

x表示所要抽样数据,size表示抽样元素个数,replace为T表示采取有重复的抽样,prob用于指定抽样的概率。

参考资料: