【实验目的】
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对象。 它们包含相同原子类型的元素。 虽然我们可以创建一个只包含字符或只包含逻辑值的矩阵,但它们没有太多用处。 我们使用包含数字元素的矩阵用于数学计算。使用matrix()函数创建一个矩阵。
【实验环境】
本次环境是:win7/2008 64位系统 R 3.3.3
【实验步骤】
一、打开R语言的界面
1.1双击桌面上的程序R x64 3.3.3,出现如下画面,则打开成功。
二、产生矩阵
2.1产生矩阵matrix()。
2.2生成对角矩阵和单位阵。
通过diag()函数生成对角矩阵和单位阵。 注意生成单位阵和对角矩阵的不同。
承接上一个
2.3矩阵的下标以及选取,注意,当选取某一列或者某一行时“,”不能省略。
三、矩阵的简单运算
3.1矩阵加法运算,一般是对应元素之间的运算,所以两个或多个矩阵运算时,要求它们包含的元素个数相同(或一个是另一个的整数倍)。
3.2 矩阵的减法运算,一般是对应元素之间的运算。
3.3矩阵的代数乘法运算,*表示对应元素之间的相乘
3.4 矩阵的乘法运算,%*%表示矩阵的乘法运算,即对应行乘以对应列,要注意矩阵相称需要满足x的列数等于y的行数,注意与矩阵的代数相乘进行比较区分。
3.5 获取矩阵的行和列的维数。
dim()可以获取矩阵的行和列的维数
也可以使用ncol()获取列数,使用nrow()获取行数
向量转换为矩阵。as.matrix(x)函数
判断是否为矩阵,使用is.matrix()函数
生成对角矩阵或者单位矩阵。diag()函数
求矩阵的特征值和特征向量eigen()函数
2.5求矩阵的行列式。det()函数
图2
求矩阵的逆矩阵。solve()函数
矩阵的QR分解,使用qr()函数
矩阵的奇异值分解。使用svd()函数
矩阵的转置,使用t()函数
矩阵apply()运算函数
语法是apply(data, dim, function),dim取1表示对行运用函数,取2表示对列运用函数 sum表示在行和列上的求和运算。
对矩阵在行或者列上求均值。
apply(xx, 1, mean) #行均值,等同于colMeans(xx)
apply(xx, 2, mean) #列均值,等同于colMeans(xx)
对矩阵在行或者列上求方差。
apply(xx, 1, var) #行求方差
apply(xx, 2, var) #列求方差
对矩阵在行或者列上求最大值。
apply(xx, 1, max) #行求最大值
apply(xx, 2, max) #列求最大值
对矩阵在行或者列上求最小值。
apply(xx, 1, min) #行求最小值
apply(xx, 2, min) #列求最小值
对矩阵在行或者列上求反排列。
apply(xx, 1, rev) #行求反排列
apply(xx, 2, rev) #列求反排列