如何在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值的平均值=该值)。