将一个值赋给";由「;组-SAS
我花了相当多的时间在堆栈溢出上寻找其他问题的答案,但我真的被困在这个问题上,所以我终于问了一个问题 我在SAS中有一个fish数据集,包括:将一个值赋给";由「;组-SAS,sas,Sas,我花了相当多的时间在堆栈溢出上寻找其他问题的答案,但我真的被困在这个问题上,所以我终于问了一个问题 我在SAS中有一个fish数据集,包括: 每个垂钓者的唯一ID 三个不同的变量与该垂钓者在每个类别中释放的鱼的数量:超过法定尺寸,低于法定尺寸,以及释放的死鱼 基于每个ID的行数的序列号(fishno);1到该ID的最后一行 要创建的变量:处置--可以是“死”选项下带有“legal”的字符变量,甚至可以是1-3的数值 它最初设置为每个唯一ID一行,但我将其设置为现在每丢弃一条鱼一行(即,如果有3条
假设您已经有FISHNO变量,那么需要有一些方法将每条鱼指定为合法、死亡或尺寸过小。以下代码将按该顺序分配处置:
data have;
input ID LEGAL DEAD UNDERSIZE FISHNO;
datalines;
15 1 0 1 1
15 1 0 1 2
29 2 0 2 1
29 2 0 2 2
29 2 0 2 3
29 2 0 2 4
38 1 0 1 1
38 1 0 1 2
53 1 0 1 1
53 1 0 1 2
55 1 0 1 1
55 1 0 1 2
;
run;
data want;
set have;
if legal>0 and legal>=fishno then disposition = 'legal';
else if dead>0 and legal+dead>=fishno then disposition = 'dead';
else if undersize>0 and legal+dead+undersize>=fishno then disposition = 'under';
run;
哦,太谢谢你了!!我知道必须有一种更简单、更优雅的方式来做这件事,我被困在了看树不见林的境地。我没有意识到,仅仅添加变量并使用fishno分配变量就可以用于唯一ID,但这是有意义的。