铜仁市论坛

首页 » 分类 » 问答 » 年新疆地区计算机考研汇总分析
TUhjnbcbe - 2021/5/17 19:54:00

R是一种基于对象的语言,拥有许多用于存储数据的对象类型,包括标量、向量、矩阵、数组、数据框和列表,多样化的数据结构使得R可以处理多种数据类型,包括数值型、字符型、逻辑型、复数型和原生型。各种数据对象类型在存储数据的类型、创建方式、结构复杂度,以及用于定位和访问其中个别元素的标记等方面均有所不同。

向量和标量

向量是用于存储数值型、字符型或逻辑型数据的一维数组,可运用函数进行创建,如下图(左)所示,其中a是数值型向量,b是字符型向量,而c是逻辑型向量。标量是只含一个元素的向量,如下图(右)所示,用于保存常量。

(温馨提示:单个向量中的数据必须拥有相同的类型或模式(数值型、字符型或逻辑型),即不能将两种或两种以上类型的数据放在同一个向量中。)

访问向量中的元素可通过方括号中给定元素所处位置的数值,如用于访问向量a中的第一个和第二个元素。更多示例如下图所示,其中最后一个语句中使用的冒号用于生成一个数值序列,例如等价于。

矩阵

矩阵是一个二维数组,只是每个元素都总有相同的模式(数值型、字符型或逻辑型),可通过函数创建矩阵,函数格式为:matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,dimnames=NULL),其中data是一个向量数据,nrow和ncol用以指定行和列的维数,byrow表明矩阵应当按行填充(TRUE)还是按列(FALSE)填充,dimnames包含了可选的、以字符型向量表示的行名和列名。具体应用如下图所示。

矩阵可以使用下标和方括号来进行矩阵中的行、列或元素的选择。指矩阵a中的第i行,指第j列,指第i行第j个元素。选择多行或多列时,下标i和j可为数值型向量。如下图所示,首先创建了一个内容为数字1到10的2*5矩阵。默认情况下,矩阵按列填充。然后,我们分别选择了第一行和第二列的元素。接着,分别选择了第一行第二列和第一行第二、第三列的元素,最后运用冒号选择了第二列到第四列的元素。

(温馨提示:矩阵都是二维的,和向量类似,矩阵中也仅能包含一种数据类型。当维度超过2时,可以使用数组,当包含多种数据类型时,可以使用数据框)

数组

数组和矩阵类似,但是维度可以大于2,可以通过函数进行创建,使用格式为:array(data=NA,dim=length(data),dimnames=NULL),其中data包含了数组中的数据,dim是一个数值型向量,给出各个维度下标的最大值,dimnames是可选的、各维度名称标签的列表。如下图所示,创建了一个三维(2*2*3)数值型数组。从数组中选取元素的方式与矩阵相同。下图中,元素为11。

数据框

数据框是R中最常处理的数据结构,允许在不同的列包含不同类型(数值型、字符型等)的数据,与我们在其他软件SPSS、STATA等中看到的数据集类似。数据框可通过函数创建:

data.frame(...,row.names=NULL,check.rows=FALSE,check.names=TRUE,fix.empty.names=TRUE,stringsAsFactors=default.stringsAsFactors())

数据框中每一列可以为任何数据类型,但是每一列的数据必须是同一个类型,选取数据框中元素的方式有若干种,可以使用前述(如矩阵中的)下标,也可以直接指定列名,具体应用如下图所示,其中记号$被用来选取一个给定数据框中的某个特定变量。

列表

列表是R数据类型中最为复杂的一种。一般情况,列表就是一些对象的有序集合,允许整合若干对象到单个对象名下,可以使用函数进行创建,其中的对象可以是前面任何数据类型。如下图中创建了一个列表,其中包括三个成分,一个数值型向量,一个字符串,一个矩阵,将这三个对象组合在一起,保存为一个列表。列表可以通过在双重括号中指明代表某个成分的数字或名称来访问列表中的元素,如下图中y[[2]]和y[[“b2”]]均为那一个字符串向量。

(温馨提示:R中的下标是从1开始,而不是从0开始,并且函数中的括号、引号等标点符号都是在英文下进行输入。)

预览时标签不可点收录于话题#个上一篇下一篇
1
查看完整版本: 年新疆地区计算机考研汇总分析