首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用proc tranpose转换此数据集?

如何使用proc tranpose转换此数据集?
EN

Stack Overflow用户
提问于 2019-04-17 00:39:25
回答 1查看 34关注 0票数 0

我正在尝试转换下面的数据集。

代码语言:javascript
复制
   Date        Data1      Data2       Category 
 Dec-2012     59          12          Red
 Dec-2012     31          91          Blue 
 Jun-2014     11          71          Red
 Aug-2015     51          85          Yellow
 Aug-2015     16          66          Blue

我想将此数据转换为以下内容

代码语言:javascript
复制
 Date    | RedData1| RedData2 | BlueData1 |BlueData2 |YellowData1 | YellowData2

 Dec-2012 |   59   |     12   |     31    |    91    |            |
 Jun 2014 |  11    |     71   |           |          |            |
 Aug 2015 |        |          |     16    |    66    |     51     |     85

我该如何使用proc sql来实现这一点?或任何其他的SAS代码?

EN

回答 1

Stack Overflow用户

发布于 2019-04-17 01:23:04

数据形状转换可以使用两个转置步骤来实现。

  • step1 -按行透视可将data1data2值矢量化为单个列,同时维护datecategory category-通过date使用category_name_作为标识变量透视数据值,从而生成输出列名。

示例:

代码语言:javascript
复制
data have;
input Date monyy7. Data1 Data2 Category $;
format date monyy7.;
datalines;
Dec2012     59          12          Red
Dec2012     31          91          Blue 
Jun2014     11          71          Red
Aug2015     51          85          Yellow
Aug2015     16          66          Blue
run;

proc transpose data=have out=step1;
   by date category notsorted;
   var data1 data2;
run;   

proc transpose data=step1 out=want;
   by date;
   id category _name_;
   var col1;
run;   
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55712941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档