如何在 SAS 中堆叠多个频率表

How do I stack many frequency tables in SAS

我有一个包含大约 800 个观测值的数据集。我想获得 14 个变量的频率。我想通过形状获得这些变量的频率(一个例子)。有3种不同的形状。

这样做一次的例子显然是: 触发频率; tables颜色;按形状;运行;

但是,我不想要42频率tables。我想要一个频率 table,它在左侧有 14 个变量的列表。顶部标题将具有 shape1 shape2 shape3 以及它们下方每个变量的频率。 看起来我按百分比调换了数据集,然后将它们堆叠在一起。

我有几组组合需要这样做。我有大约 5 个不同的变量组,我需要使用 3 个不同的组来制作 tables(需要大约 15 tables)。我讨论的第一个例子就是此类群体的一个例子。

如有任何帮助,我们将不胜感激!

使用 proc meansproc 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;