• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

《R语言编程艺术》——3.8 高维数组

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

3.8 高维数组

在统计学领域,R语言中典型的矩阵用行表示不同的观测,比如不同的人,而用列表示不同变量,比如体重血压等,因此矩阵一般都是二维的数据结构。但是假如我们的数据采集自不同的时间,也就是每个人每个变量每个时刻记录一个数。时间就成为除了行和列之外的第三个维度。在R中,这样的数据称为数组(arrays)。
举个简单的例子,考虑学生和考试成绩的数据。假设每次考试分为两个部分,因此每次考试需要给每个学生记录两个分数。假设有两次考试,只有三个学生。第一次考试的数据是:

现在要把两次考试的成绩合并到一个数据结构里,命名为tests。tests共分为两个数据层(layer),一层对应一次考试,每层都是三行两列。firsttest在第一层,sedondtest在第二层。
第一层的三行对应于第一次考试的三个学生,每行的两列对应于考试的两个部分成绩。用array()函数创建这个数据结构:

参数dim=c(3,2,2) 指明数据共有两层(第二个2),每层分别有三行两列。这个参数最后会成为数组的dim属性。

tests中的每个元素现在都有三个下标,比矩阵多一个。这三个下标按顺序与$dim向量中的三个元素一一对应。例如,学生3在第一次考试的第二个部分中的得分如下:

print函数会逐层显示出数组的内容:


我们之前把两个矩阵合并成一个三维数组,同样,也可以把两个或更多个三维数组合并成四维的数组,以此类推。
数组的一个最常用的场合是表(table)的计算。参见6.3节中三维表的例子。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap