我有大约800个观测数据集。我想获得14个变量的频率。我想通过形状得到这些变量的频率(一个例子)。有3种不同的形状。
这样做的一个例子显然是: proc freq;桌子颜色;按形状;运行;
但是,我不想要42个频率表。我想要一个频率表,左侧有14个变量列表。顶部标题将具有shape1 shape2 shape3,其下方的每个变量的频率。 看起来我按百分比转换数据集然后将它们叠加在一起。
我有几组需要这样做的组合。我有大约5个不同的变量组,我需要使用3个不同的组来制作表格(需要大约15个表格)。我讨论的第一个例子就是这类小组的一个例子。
任何帮助将不胜感激!
答案 0 :(得分:0)
使用proc means
和proc transpose
。我举个例子。您可以添加更多类别。
proc means data=sashelp.class nway n;
class sex age;
output out=class(drop=_freq_ _type_) n=freq;
run;
proc transpose data=class out=class(drop=_name_) prefix=AGE;
by sex;
var freq;
id age;
run;
data class_sum;
set class;
array a(*) age:;
age_sum = sum(of age:);
do i = 1 to dim(a);
a(i) = a(i) / age_sum;
end;
drop i;
run;