我试图在sas中的一个组内循环并执行某些条件操作 我的数据集是:
组val AMT
1 A 12
1 B 06
1 A 31
2 A 77
2 A 32
3 A 43
3 B 76
4 A 32
4 B 44
4 B 23
4 B 11
我想创建一个新的变量value2为“A”或“B”,条件如下:
如果值为B,则value2为B else value2为每组01,02,03为A等等
例如,我想要的数据集是
组val AMT
1 B 12
1 B 06
1 A 31
2 A 77
2 A 32
3 B 43
3 B 76
4 B 32
4 B 44
4 B 23
4 B 11
答案 0 :(得分:1)
尝试使用ifc函数,该函数根据您的条件返回一个字符值,即“B”如果为true,“A”如果为false:
data want;
set have;
value2=ifc(value='B','B','A');
run;
此致 阿米尔。
答案 1 :(得分:0)
您可以使用SQL获取最大值。这种格式的数据没有意义,因为缺少的是空白,而不是句号。
data have;
infile cards truncover;
input group $ value $;
cards;
01 A
01 B
01 B
02
02 A
02 A
03 B
03 B
;
proc sql;
create table want as
select *, max(value) as value2
from have
group by group
order by group, value, value2;
quit;