Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 创建具有不同长度的三维阵列_Arrays_R_Grouping - Fatal编程技术网

Arrays 创建具有不同长度的三维阵列

Arrays 创建具有不同长度的三维阵列,arrays,r,grouping,Arrays,R,Grouping,我是R的初学者。 我想创建一个三维数组,但我不能定义每个维度的长度。 我正在分析学生在课堂上的成绩。有10个班,但学生人数不同。“等级”将是100-90,89-80,79-70。。。直到有学生获得相关分数。 我打算在多重数组中使用几个for循环。 如果我创建一个3维阵列 arr<-array(data, dim=c(??,??,??)), dimnames= list("class","grade","average Marks") ) arr你不能 数组的维数是固定的。您可以使用每个维

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

arr<-array(data, dim=c(??,??,??)), dimnames= list("class","grade","average Marks") )
arr你不能

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


列表是不同长度、甚至不同组件类型的备选方案。

您真的不想使用矩阵来实现此目的。数据帧允许混合使用多种数据类型

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>

clasIDs您能澄清一下为什么要将其作为三维数据吗?如果基于相同的数据,那么成绩和平均分数是如何不同的维度的?这就是数据的方式,比如:班级=1:10班级1/学生分数:89,87,90,95,76,78,45,65,88,95,56,34,93,92100。。我想知道第一:每个“年级”组有多少学生,第二:每个班级每个组的平均分数。所以我打算使用三维的,包括“等级”,结果将是arr[等级,等级,avr]。它们将相互联系。例如一班->90~100级->某个值,一班->80~89级->某个值。。。第二类->等级90~100->一些值..啊..是的,我想我读过类似数组上的“固定”维。。非常感谢。