R软件及编程应用第二讲解说.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * (1)创建矩阵 在R中矩阵和数组被表达成带维数的向量,矩阵是二维向量,数组是两个及以上维度的向量。 矩阵是一种特殊的向量,包含两个 附加的属性:行数和列数。矩阵元素的数据类型可以是任意的(数值型、字符型、逻辑型等)。 数组是R里更一般的对象,矩阵是数组的一个特殊情形。数组可以是多维的。例如一个三维数组包含行、列和层。 R的强大之处在于它丰富的矩阵运算。 (1)创建矩阵 把向量表达成带两个维数的矩阵:首先生成一个向量,然后利用dim()函数指定维度。例 在R中矩阵是按列存储的,即先存储第 一列,再存储第二列,以此类推。 矩阵的行和列的下标都是从1开始。例 x的第一个元素可以标记为x[1][1] 在此方法中,dim指定的维数必须和向 量x的长度匹配,否则会出错。 (1)创建矩阵 使用matrix函数,该函数的定义形式是(用?matrix命令可以查看定义): matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,dimnames=NULL) data表示向量名,在默认情况下为缺失值。 nrow和ncol分别表示矩阵的行数和列数,默认情况下都为1 byrow设置是否按行填充。默认情况下为FALSE,即不按行填充,而是按列填充。如果设置成TRUE,则按行填充。 dimnames表示数组维度名称,缺省时为空。 (1)创建矩阵:使用matrix函数 举例: 说明: 在指定nrow和ncol时,可以只指定一个,另一个自动设置 矩阵名[,数值]和矩阵名[数值,]分别是矩阵的列向量和行向量的记号。 参数byrow=T参数只是改变数据输入/填充的顺序。并没有改变矩阵按列存储的本质。 (1)创建矩阵 另一种创建矩阵的方式是为每一个元素赋值。当用此方法之前,必须先声明矩阵变量,并指定矩阵的行数和列数。 举例:左图 注1:变量使用之前,必须先声明(先声明后使用) 注2:变量声明之后,在默认情况下其元素是用NA填充的。 思考:若ncol=3,其他不变,结果? (2)一般矩阵运算 一般矩阵运算包括:线性代数运算(两矩阵维数相同)、函数运算、矩阵索引、矩阵元素的筛选。 线性代数运算,即使用运算符计算,包括矩阵的数量乘法、矩阵加法和矩阵相乘(%* %,与*有区别).这些运算和向量运算相似.举例: (2)一般矩阵运算 函数运算:包括矩阵转置、矩阵求逆、特征值、特征向量、行列式、对角矩阵、特征值分解等。 矩阵转置,即实现矩阵的行列互换,调用函数t()即可。 求方正矩阵的行列式(定义??):函数det()是求矩阵行列式的值,如det(matrix(1:4,ncol=2) ),输出:[1] -2 生成对角阵和矩阵取对角运算:函数diag(v)的输出依赖于他的变量v,当v是一个向量时,diag(v)表示以v的元素为对角元素的对角阵;当v是一个矩阵时,diag(v)表示由v对角线上的元素组成的向量;若v是一个标量,则生成指定大小的单位矩阵。 (2)一般矩阵运算 函数crossprod()和tcrossprod() :他们的定义形式是一样的,如下:(t)crossprod(x,y=NULL),其中参数x和y可以是数值型的向量或者矩阵。y可以不被赋值,在此情况下只有x一个变量参与运算。 当x和y为向量时,crossprod(x,y)表示求向量x和y的内积(相当于x*y,与x*y有区别,见下例),tcrossprod表示求向量x和y的外积(相当于x%o%y)。 当x和y为矩阵时,crossprod(x,y)表示t(x)%*%y,即矩阵x的转置再与y相乘;而tcrossprod(x,y)表示x%*%t(y)。 举例 (2)一般矩阵运算 解线性方程组和求逆矩阵:若求解线性方程组Ax=b,其命令形式为solve(A,b),若求矩阵A的逆,其命令则为solve( A). 举例: (2)一般矩阵运算 特征值、特征向量及特征值分解:对应方阵A,x是一个标量,v是非零的N维列向量,且满足Av=xv(即(A-xE)v=0),则称x为矩阵A的一个特征值,v为特征值x对应的一个特征向量 ,特征值的全体称为矩阵A的谱. 在R中利用函数eigen(A)求解矩阵的特征值和特征向量,其返回值中$values表示矩阵的特征值构成的向量,$vector表示特征值对应的特征向量。 举例:eigen(matrix(c(1,1,-1,1),nrow=2)) (2)一般矩阵运算 当所求的特征向量构成的矩阵可逆时,满足diag( solve(vectors) %*%A%*%vectors)= values 举例: (2)一般矩阵运算 矩阵的奇异值分解:函数svd(A)是对矩阵A作奇异值分解。即A=U%*%D%

文档评论(0)

希望之星 + 关注
实名认证
文档贡献者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档