搜索
写经验 领红包

语言基本数据类型(语言的数据类型和数据结构)

导语:R语言基本数据对象之列表了解

r语言基本数据类型(r语言的数据类型和数据结构)

【实验目的】

1)熟悉R语言的基本数据类型

2)熟悉R语言的基本操作

3)熟悉R语言列表的主要运算函数

【实验原理】

在R语言里操作和接触的所有东西都称作对象(object)。对象有很多种类 可以包含各种类型的数据。R 语言里所有的东西都被称为对象,R语言中常见的数据类型有几下几种,分别是字符型 (character)、数值型 (numeric)、复数型 (complex)以及逻辑型 (logical)。通过mode()函数可以查看一个对象的类型。

R语言中的基本运算包括以下:数学计算,比较运算,运算函数,向量常用统计函数,矩阵常用函数集合运算,向量化,从文件中读取数据,概率分布,循环和条件操作。

R语言的数据对象主要包括向量(vector),矩阵(matrix),因子(factors),列表(list),数据框(data frame),函数( function)。 列表是R语言对象,它包含不同类型的元素,如数字,字符串,向量和其中的另一个列表。 列表还可以包含矩阵或函数作为其元素。 列表是使用list()函数创建的。

【实验环境】

本次环境是:win7 64位系统 + R 3.3.3

【实验步骤】

一、打开R语言的界面

1.1双击桌面上的程序R x64 3.3.3,出现如下画面,则打开成功。如图1所示

二、列表

2.1列表介绍

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

2.2 列表的创建

向量、矩阵和数组的元素必须是同一类型的数据。一个数据对象需要包含不同的数据类型,它可以采用列表这种形式。

创建列表可用list()函数,语法是:list(name1 = component1, name2 = component2, ...)。

看下例,使用list()创建了一个名为&34;的列表,内容包括名字,年龄,考试分数。

2.3 查看列表元素。

列表元素总可以用“列表名[[下标]]”的格式引用,注意:列表不同于向量,我们每次只能引用一个元素,如rec[[1:2]]的用法是不允许的。

“列表名[下标]”或“列表名[下标范围]”的用法也是合法的,但其意义与用两重括号的记法完全不同,两重记号取出列表的一个元素,结果与该元素类型相同,如果使用一重括号,则结果是列表的一个子列表(结果类型仍为列表)。

2.4使用名字作为下表引用元素。

在定义列表时如果指定了元素的名字(如rec中的name,age,scores),则引用列表 元素还可以用它的名字作为下标,格式为“列表名[[&34;]]”

2.5 使用“列表名$元素名”取列表元素

其中“元素名”可以简写到与其它元素名能够区分的最短程度,比如“rec$s”可以代表“rec$score”。这种写法方便了交互运行,编写程序时一般不用简写以免降低程序的可读性。

三、列表

3.1 列表的修改。

列表的元素可以修改,只要把元素引用赋值即可。

可以任意修改一个列表元素

3.2 列表元素修改

如果被赋值的元素原来不存在,则列表延伸以包含该新 元素。例如,rec现在共有三个元素,我们定义一个新的命名元素,则列表长度变为4,再定 义第六号元素则列表长度变为6,第五号元素因为没有定义所有其值是“NULL”,这是空对象的记号。如果rec是一个向量 ,则其空元素为“NA”,这是缺失值的记号。从这里我们也可以体会“NULL”与“NA”的区 别。

列表的连接

列表的连接。

几个列表可以用连接函数c()连接起来,结果仍为一个列表,其元素为各自变量的列表元素。

几个返回列表的例子

列表的重要作用是把相关的若干数据保存在一个数据对象中,这样在编写函数时,我们就可以返回这样一个包含多项输出的列表。因为函数的返回结果可以完整地存放在一个列表中,我们可以继续对得到的结果进行分析。下面给出几个返回列表的例子。

特征值和特征向量。

函数eigen(x)对对称矩阵x计算其特征值和特征向量,返回结果为一个列表,列表的 两个成员(元素)为values和vectors。注:%o% 中间的为字母’o’

可见三个特征值只有第一个不为零(由于数值计算精度所限,第三个特征值应为零但结果只是近似为零)。特征向量按矩阵存放,每一列为一个特征向量。

奇异值分解。

函数svd(x)进行奇异值分解 ,其中x是任意阵,可以为正交阵,可以为正交阵,可以为对角阵(只有主对角线元素不为零)。svd(x) 返回有三个成员d,u,v的列表,d为包含奇异值的向量(即x的主对角线元素),u,v分别为上面的两个正交阵

本文内容由小馨整理编辑!