gpt4 book ai didi

excel - 在 SAS 中使用 PROC TABULATE 的具有重复标签的标准化表

转载 作者:行者123 更新时间:2023-12-04 20:24:53 25 4
gpt4 key购买 nike

在 SAS 中,我需要一个 PROC TABULATE标签重复的地方,以便在 Excel 上使用 INDEX-MATCH 更容易找到它们。这是 sashelp.cars 的示例。

第一个 PROC TABULATE 具有重复标签的优点,这是 INDEX-MATCH 所需要的。但是,它的缺陷是 SAS 只给出非缺失值。

data cars;
set sashelp.cars;
run;

proc sort data=cars;
by make;
run;

这并没有给出所有标签。我想要一张按列(欧洲、亚洲、美国)和每种汽车类型(轿车、SUV、旅行车、运动......)按列包含 3 大洲的表格。
PROC TABULATE DATA = cars;
option missing=0;
by make;
CLASS make type Type Origin / mlf MISSING ;
TABLE (
(type*make)
), (Origin='') / printmiss nocellmerge ; RUN;

因此,为了按列拥有所有 3 大洲,以及每种类型的汽车(轿车、SUV、旅行车、运动型......),我按照建议使用 CLASSDATA:
Data level; 
set cars;
keep make type Type Origin;
Run;

PROC TABULATE DATA = cars MISSING classdata=level;
option missing=0;
by make;
CLASS make type Type Origin / mlf MISSING ;
TABLE (
(make*type)
), (Origin='') / printmiss nocellmerge ;
RUN;

Data level;
set cars;
keep make type Type Origin;
Run;

PROC TABULATE DATA = cars MISSING classdata=level;
option missing=0;
by make;
CLASS make type Type Origin / mlf MISSING ;
TABLE (
(make*type)
), (Origin='') / printmiss nocellmerge ;
RUN;

但这给出了一个巨大的表格和不重复的标签。是否有中途解决方案:
  • 最后一张表中的所有列(3 大洲)
  • 只有相关的 MAKE,即 Acura 的前 6 行
  • 重复标签,如第一个 PROC TABULATE

  • 非常感谢,

    最佳答案

    我建议不要导出 proc tabulate 的列表脱颖而出proc tabulate不会为第二列中的每个值重复第一列中的值,因为输出是供人类阅读的。这不是您需要将数据写入 excel 以进行进一步查找的工具。
    我建议不要使用 MATCH但是 SUMIFSMATCH在 excel 中是一个很棒的功能,但对于您的应用程序来说不是一个好的选择,因为

  • 当它找不到您要查找的内容时会出错,这就是为什么您需要输出中的所有标签
  • 它只支持一个标准,所以你至少需要其中的 3 个
  • 它返回一个位置,所以你仍然需要一个索引函数。

  • 因此,我建议写一个简单的 create table
    PROC sql;
    create table TO_EXPORT as
    select REGION, MACTIV, DATE, count(*) as cnt
    from data
    group by REGION, MACTIV, DATE;
    proc export data = TO_EXPORT file="&myFolder\&myWorkbook..xlsx" replace;
    RUN;
    您将在 Excel 中以更面向数据的格式保存数据。
    要检索数据,我建议使用以下类型的 excel 公式
    =sumifs($D:$D,$A:$A,"13-*",$B:$B,$C:$C,"apr2020")`
    它将所有计数与您正在寻找的标准相加。
    因为最多一行将满足这些条件,它实际上只是查找您正在寻找的计数。
    如果该计数不存在,它将仅返回零。
    免责声明:
    我没有测试这段代码,所以如果它不起作用,请发表评论,我会的。

    关于excel - 在 SAS 中使用 PROC TABULATE 的具有重复标签的标准化表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62389595/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com