-1
我需要您的帮助来解决简单问题。(SAS)从一个特定列(或多列减法)中减去许多列
SAS数据集看起来像 (数据集) 列A列B列C ......列以Z SSS
我想做出新的SAS数据集看起来像 (数据集中的新) 列A - SSS列B - SSS列C - SSS ... Z列 - SSS
也就是说,我想从一列中减去很多列! 我现在没有如何解决这个问题,使用宏或简单的把戏(或SQL?)
在此先感谢!
我需要您的帮助来解决简单问题。(SAS)从一个特定列(或多列减法)中减去许多列
SAS数据集看起来像 (数据集) 列A列B列C ......列以Z SSS
我想做出新的SAS数据集看起来像 (数据集中的新) 列A - SSS列B - SSS列C - SSS ... Z列 - SSS
也就是说,我想从一列中减去很多列! 我现在没有如何解决这个问题,使用宏或简单的把戏(或SQL?)
在此先感谢!
正如你对帖子的评论所建议的那样,你的问题有点难理解,而阵列很可能是最好的选择。
这就是说,也许你可以使用下面的代码来解决你的问题:
/*Reproducible random dataset*/
data have;
do i=1 to 10;
Column_A = ceil(ranuni(_N_ )*1000);
Column_B = ceil(ranuni(_N_+10)*1000);
Column_C = ceil(ranuni(_N_+20)*1000);
Column_D = ceil(ranuni(_N_+30)*1000);
Column_E = ceil(ranuni(_N_+40)*1000);
SSS = ceil(ranuni(_N_+50)*100);
output;
end;
drop i;
run;
/*Desired result?*/
data want;
set have;
array Columns Column_:; /* The ':' is a suffix wildcard matching like typed variables with names starting with "Column_" */
do over Columns;
Columns = Columns - SSS;
end;
drop SSS;
run;
建议你添加一些样本数据。另外,显示你尝试过的代码。你有没有尝试过使用数组? – Quentin
这个问题不需要宏或SQL'技巧'。数组是最简单的解决方案。看到这里的例子:http://stats.idre.ucla.edu/sas/seminars/sas-arrays/#same – Reeza
正如你所说的你的问题不符合SO规则,所以它不太可能会得到答案,直到它。您需要添加示例数据和输出,并显示您尝试过的内容。 https://stackoverflow.com/help/how-to-ask – Reeza