SAS代码,用于在缺少预期值时在表中添加行
我对SAS很天真。我使用PROC-SQL管理了前面的其他步骤。我的表有3列SAS代码,用于在缺少预期值时在表中添加行,sas,Sas,我对SAS很天真。我使用PROC-SQL管理了前面的其他步骤。我的表有3列 code count Fruit 0 56 Apple 6 58 orange 7 676 orange 在表格中为没有code=0值的每个产品(水果)添加一行,然后在表格中为eg添加count=0,额外的行将是 code count Fruit 0 0 orange
code count Fruit
0 56 Apple
6 58 orange
7 676 orange
在表格中为没有code=0值的每个产品(水果)添加一行,然后在表格中为eg添加count=0,额外的行将是
code count Fruit
0 0 orange
像这样开始代码
Data table2;
SET table1;
IF code NE 0 then do;
您可以按CODE的果值和降序值对数据进行排序,当某个果值的最后一条记录没有CODE=0时,请添加一条记录
proc sort data=have out=want ;
by fruit descending code ;
run;
data want ;
set want ;
by fruit ;
output;
if last.fruit and code ne 0 then do;
code=0; count=0; output;
end;
run;
搜索Preload FMT或CLASSDATA以了解如何添加0值。要记住的是,计算机是愚蠢的。如果它不在那里,它怎么知道它应该在那里呢?你必须以某种方式告诉它,不幸的是,这确实意味着你需要以某种方式列出它。所有可能的水果值是否都存在于数据中,但可能与代码的其他值一起不是零?如果没有,那么还有其他来源可以找到水果的所有可能价值吗?零是代码的最低(或最高)可能值吗?是的,表中有所有可能的Fruit值。零是代码的最低值。如果条目中有所有Fruit值和所有代码值,则可以使用稀疏选项,但正如我提到的,如果它不在数据集中,则它将不起作用。此外,您将通过各种级别的水果获得各种级别的代码,而这可能不是您想要的。计数是源数据的一部分吗?还是你算计的?如果您正在计算计数,那么也许PROC FREQ中的稀疏选项就是获得零所需的全部?