SAS使用循环根据其他列的值添加新的多列

SAS Add new multiple columns based on other column's value using loop

我有这种数据 table(它只是大型数据集的一部分),是我在 SAS studio 中使用 PROC MEANS 和 PROC SQL 创建的。我想在这里添加几个新列,显示每年的 pct_missing。因为,现在,我们在多行中有相同的变量,因为我按年份对它进行了分组。有什么方法可以使用循环添加这些列吗?

当前数据(原始数据table):

我希望拥有的东西: (想添加所有新列 pct_missing_2004 ~ pct_missing_2018 显示每年的变量 pct_missing)(下面写的 pct_missing_2004、2005 的值只是一个例子! !!)

无论如何我们可以在 SAS 中使用循环或任何其他好方法来做到这一点!?

我不是 100% 我确定你在这里想要什么,但转置可能会有所帮助。

查看下面的示例。

data have; 
 input 
    year 4. 
    variable .
    pct_missing 3.;
 CARDS;
2011A100
2011B90
2010A80
2010B70
2010C60
 ;
 run; 
 
 proc sort 
  data=have;
  by variable; 
 run; 
 
 
 Proc Transpose
    data=have
    out=want (drop=_name_)
    prefix=pct_missing;
    id year;
    var  pct_missing;
    by variable ; 
 run;

mAndroid