我是R的初学者,我想创建一个三维数组,但我不能定义每个维度的长度。我正在分析学生在一节课上的成绩。有10个班级,但有不同的学生人数。和“等级”将是100-90,89-80,79-70...直到有学生拿到相关的分数。我打算对多重数组使用几个for循环。如果我创建一个3维数组,
arr<-array(data, dim=c(??,??,??)), dimnames= list("class","grade","average Marks") )发布于 2010-07-11 23:16:22
您真的不希望使用矩阵来完成此任务。dataframe允许您混合使用多种数据类型。
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>发布于 2010-07-11 22:56:41
你不能这么做。
数组的维数是固定的。您可以使用每个维度的最大值,并将其与NA一起分配来填充。
对于不同的长度,甚至不同的组件类型,列表都是另一种选择。
https://stackoverflow.com/questions/3223303
复制相似问题