【问题标题】:Grouping and Transposing data in SAS EG 5.1SAS EG 5.1 中的数据分组和转置
【发布时间】:2021-04-13 07:48:44
【问题描述】:

我在 SAS EG (Proc SQL) 工作,我有一个如下所示的数据集:

PC | Year | Frequency 
A  |  18  | 1
A  |  19  | 2 
A  |  20  | 3 
B  |  18  | 4 
B  |  20  | 5 
C  |  17  | 6
...

我希望它看起来像这样:

PC | 17 | 18 | 19 | 20  
A  |    | 1  | 2  | 3 
B  |    | 4  |    | 5
C  | 6  |    |    | 
...

随着年份值成为显示频率的列。我用 GROUP BY 玩了一些,但它似乎没有做我需要的。任何帮助不胜感激?????????

【问题讨论】:

  • 在开发流程时,您是在编写纯代码还是使用可用的 EG 工具?您可以使用REPORTTABULATE 以转置方式呈现数据,而无需实际创建新的转置数据集。

标签: sql sas proc-sql


【解决方案1】:
data test;
   infile cards firstobs=2 dlm='|';
   input pc:$1. year freq;
   cards;
PC | Year | Frequency 
A  |  18  | 1
A  |  19  | 2 
A  |  20  | 3 
B  |  18  | 4 
B  |  20  | 5 
C  |  17  | 6
;;;;
proc print;
   run;
proc summary data=test nway completetypes;
   class pc year;
   freq freq;
   output out=test2(drop=_type_);
   run;
proc print;
   run;
proc transpose data=test2 out=test3 prefix=Year;
   by pc;
   id year;
   var _freq_;
   run;
proc print;
   run;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多