如何在sas中创建网格/矩阵?

如何在sas中创建网格/矩阵?,sas,Sas,基本上我有这个 proc means data=mydada1; var variable1; run; proc means data=mydada2; var variable2; run; 我有14个这样的过程意味着他们基本上计算每个数据集的平均泥灰。 我想在2x2网格或矩阵中显示这些方法,如下所示 HistoryMark GeographyMark MathematicsMarks Name John 2.2 2.5

基本上我有这个

proc means data=mydada1;
    var variable1;
run;
proc means data=mydada2;
    var variable2;
run;
我有14个这样的过程意味着他们基本上计算每个数据集的平均泥灰。 我想在2x2网格或矩阵中显示这些方法,如下所示

     HistoryMark  GeographyMark MathematicsMarks 
Name   
John  2.2         2.5         2.6
Jack  2.7         2.8          9.0
我在考虑2D数组,但我不知道如何从过程平均值中提取数据,也不知道如何摆脱这14个过程平均值,创建一个计算各种数据集平均值的步骤

Mydata,MyData1看起来像这样

2.3 
2.5
2.78 
2.9
-2.4
-2.5
2.09
2.9999

将所有数据堆叠在一个数据集中,并使用一个变量指示数据来自哪个数据集(在本例中,它似乎包含“HistoryMark”等)。然后您可以将
PROC MEANS
CLASS
语句一起使用,或者在您的情况下,最好是
PROC tablate
CLASS
一起使用。假设
have
是通过将数据集堆叠在一起创建的数据集:

proc tabulate data=have;
class name mark_class;
var mark;
tables name,mark_class*mark*mean;
run;

诸如此类,假设你有
mark
(他们的分数)、
name
(他们的名字)和
mark\u class
(这个标记所代表的类)。

对不起,我有点困惑,我该如何将来自proc means的所有结果合并到一个数据集中。不,在
proc means
之前合并数据集。为原始数据集中的每一行构建一个数据集,其中包含
标记
(该类的分数)、
标记(他们获得该标记的类)和
名称
(学生姓名)。变量名可以是任何东西,这些只是示例中的占位符。这是一个好主意,问题是,数据是标记范围,有些数据集的标记比其他数据集的标记多。这有什么关系?中庸就是中庸,不是吗,不管范围有多大?
class
语句将事情设置为基本上独立的计算,每列一个,因此不同的类值实际上不会相互影响;取每个proc means输出数据集,将它们与一个变量一起设置,该变量指示哪一个(
mark_class
still),表格仍然相同(1值的平均值=该值)。