第二讲-数据操作.ppt

  1. 1、本文档共80页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二讲-数据操作

数组的维名字 数组可以有一个属性dimnames保存各维的各个下标的名字,缺省时为NULL(即无此属性)。 以矩阵为例,它有两个维:行维和列维。比如,设x为2行3列矩阵,它的行维可以定义一个长度为2的字符向量作为每行的名字,它的列维可以定义一个长度为3的向量作为每列的名字,属性dimnames是一个列表,列表的每个成员是一个维名字的字符向量或NULL。例如: x - matrix(1:6, ncol=2, dimnames=list(c(one, two, three), c(First, Second)), byrow=T) x First Second one 1 2 two 3 4 three 5 6 我们也可以先定义矩阵x然后再为dimnames(x)赋值。 对于矩阵,我们还可以使用属性rownames和colnames来访问行名和列名。 在定义了数组的维名后我们对这一维的下标就可以用它的名字来访问, x - matrix(1:6, ncol=2,byrow=T) rownames(x) - c(第一行, 第二行, 第三行) colnames(x) - c(第一列, 第二列) 也可以用 dimnames(x)=list(c (第一行, 第二行, 第三行), c(第一列, 第二列)) x 第一列 第二列 第一行 1 2 第二行 3 4 第三行 5 6 x[第一行, 第二列] [1] 2 x[第一行, ] 第一列 第二列 1 2 x[, 第二列] 第一行 第二行 第三行 2 4 6 数组的外积 两个数组a和b的外积是由a的每一个元素与b的每一个元素搭配在一起相乘得到一个新元素,这样得到一个维数向量等于a的维数向量与b的维数向量连起来的数组, a-c(1,2,3) b-c(2,5,7) a%o%b [,1] [,2] [,3] [1,] 2 5 7 [2,] 4 10 14 [3,] 6 15 21 注意:b%o%a==t(a%o%b) 即若d为a和b的外积,则dim(d)=c(dim(a), dim(b))。 a和b的外积记作 a %o% b。如 d - a %o% b 也可以写成一个函数调用的形式: d - outer(a, b, *) 注意outer(a, b, f)是一个一般性的外积函数,它可以把a的任一个元素与b的任意一个元素搭配起来作为f的自变量计算得到新的元素值,外积是两个元素相乘的情况。函数当然也可以是加、减、除,或其它一般函数。当函数为乘积时可以省略不写。 outer(a,b,+) [,1] [,2] [,3] [1,] 3 6 8 [2,] 4 7 9 [3,] 5 8 10 例如,我们希望计算函数 在一个x和y的网格上的值用来绘制三维曲面图,可以用如下方法生成网格及函数值: x - seq(-2, 2, length=20) y - seq(-pi, pi, length=20) f - function(x, y) cos(y)/(1+x^2) z - outer(x, y, f) persp(x,y,z) # draws perspective plots of a surface over the x–y plane. 用这个一般函数可以很容易地把两个数组的所有元素都两两组合一遍进行指定的运算。 例子: 考虑简单的2×2矩阵 ,其元素均在0,1,...,9中取值。假设四个元素 a, b, c, d都是相互独立的服从离散均匀分布的随机变量,我们设法求矩阵行列式 ad-bc的分布。首先,随机变量 ad和 bc同分布,它的取值由以下外积矩阵给出,每一个取值的概率均为1/100: x - outer(0:9, 0:9) #两个向量的各种取值 这个语句产生一个10×10 的外积矩阵。为了计算 ad的100个值(有重复)与 bc的100个值相减得到的10000个结果,可以使用如下外积函数: y- outer(x, x, “-”) #两者相减的各种可能 这样得到一个维数向量为c(

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档