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
我有这种数据 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