我有一个带有一个名为Attribute的列的数据集,其中一些属性可以是重复的,如下所示:
Account Attribute
1234 Online
1458 Online
4587 Offline
当我使用PROC转置时,我得到了错误:
错误: ID值"ClomnOnline“在同一组中发生两次。
所以我使用了LET选项,但是它合并了所有数据,所以如果我在同一个属性下有多个帐户,那么只给出一个观察结果。
这是我的密码:
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 ;
发布于 2019-12-31 11:54:32
您将希望按分支中的属性对数据进行排序,而则在属性中计算序列值。sequence
变量可以与attribute
一起在ID
语句中使用。
示例:
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;
https://stackoverflow.com/questions/59542167
复制相似问题