首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建不同长度的三维数组

创建不同长度的三维数组
EN

Stack Overflow用户
提问于 2010-07-11 21:58:46
回答 2查看 2.7K关注 0票数 2

我是R的初学者,我想创建一个三维数组,但我不能定义每个维度的长度。我正在分析学生在一节课上的成绩。有10个班级,但有不同的学生人数。和“等级”将是100-90,89-80,79-70...直到有学生拿到相关的分数。我打算对多重数组使用几个for循环。如果我创建一个3维数组,

代码语言:javascript
复制
arr<-array(data, dim=c(??,??,??)), dimnames= list("class","grade","average Marks") )
EN

回答 2

Stack Overflow用户

发布于 2010-07-11 23:16:22

您真的不希望使用矩阵来完成此任务。dataframe允许您混合使用多种数据类型。

代码语言:javascript
复制
clasIDs <- c("Firsthour", "Secondhour", "Thirdhour")
class.size <-c(3, 5, 2)  # small sizes for illustration
cls.frame <- data.frame(clasID=rep(clasIDs, class.size), 
                      student.ID = unlist(sapply(class.size, function(x) seq(from=1, to=x))),
                      grade=factor(rep(NA,10) , levels=c("100-90", "89-80", "79-70")) )

> cls.frame
       clasID student.ID grade
1   Firsthour          1  <NA>
2   Firsthour          2  <NA>
3   Firsthour          3  <NA>
4  Secondhour          1  <NA>
5  Secondhour          2  <NA>
6  Secondhour          3  <NA>
7  Secondhour          4  <NA>
8  Secondhour          5  <NA>
9   Thirdhour          1  <NA>
10  Thirdhour          2  <NA>
票数 4
EN

Stack Overflow用户

发布于 2010-07-11 22:56:41

你不能这么做。

数组的维数是固定的。您可以使用每个维度的最大值,并将其与NA一起分配来填充。

对于不同的长度,甚至不同的组件类型,列表都是另一种选择。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3223303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档