首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >SAS PROC转置-使用"LET“重新出现的ID名称

SAS PROC转置-使用"LET“重新出现的ID名称
EN

Stack Overflow用户
提问于 2019-12-31 01:30:56
回答 1查看 464关注 0票数 0

我有一个带有一个名为Attribute的列的数据集,其中一些属性可以是重复的,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Account Attribute
1234    Online
1458    Online
4587    Offline 

当我使用PROC转置时,我得到了错误:

错误: ID值"ClomnOnline“在同一组中发生两次。

所以我使用了LET选项,但是它合并了所有数据,所以如果我在同一个属性下有多个帐户,那么只给出一个观察结果。

这是我的密码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    PROC TRANSPOSE DATA=WORK.Final_Sorted LET
    OUT=WORK.Final_transposed(LABEL="Transposed WORK.FINAL_SORTED")
    NAME=Source
    LABEL=Label ;
    BY Account_Branch_Id;
    ID Attribute;
    VAR acc ;
RUN ; 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-31 11:54:32

您将希望按分支中的属性对数据进行排序,而则在属性中计算序列值。sequence变量可以与attribute一起在ID语句中使用。

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data have;
input branch $ account attribute $;
datalines;
A    1234  Online
A    1458  Online
A    4587  Offline
A    1972  Online
run;

proc sort data=have equals;
  by branch descending attribute;
run;

data have_v / view = have_v;
  set have;
  by branch descending attribute;
  if first.attribute then sequence = 1; else sequence + 1;
run;

proc transpose data=have_v out=want;
  by branch;
  id attribute sequence;
  var account;
run;

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59542167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文