Loops sas中的组内循环

Loops sas中的组内循环,loops,sas,Loops,Sas,我试图在sas中的组内循环并执行某些条件操作 我的数据集是: 集团增值金额 1 A 12 1006 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,则值2为B,否则对于每组01、02、03,值2为A,依此类推 例如,我想要的数据集是 集团增值金额 1 B 12 1006 1 A 31 2 A 77 2 A 32 3 B 43 3 B 76 4

我试图在sas中的组内循环并执行某些条件操作 我的数据集是:

集团增值金额

1 A 12

1006

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,则值2为B,否则对于每组01、02、03,值2为A,依此类推

例如,我想要的数据集是

集团增值金额

1 B 12

1006

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

尝试使用ifc函数根据您的条件返回字符值,即“B”如果为真,“a”如果为假:

data want;
  set have;
  value2=ifc(value='B','B','A');
run;

您可以使用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;

嗨,阿米尔,我需要在组级别应用条件逻辑。例如,此处组01包含A、B、B等值,因此组01的值将为B(3行x3次)。您好,我建议您编辑原始问题,同时显示根据您给出的输入记录生成的所有输出记录,如@Reeza所示。您的逻辑不清楚。请发布一个更详细的示例、示例输出以及您尝试过的任何内容。那么您想创建一个与旧变量完全相同的新变量吗?嗨,为了更好地理解,我编辑了这个问题。我需要重新创建第二列(val)。如果(val)按组为“R”,则(val)中的所有值应改为“R”,否则应改为“T”。希望这有帮助