Sas 多变量上的多个条件

Sas 多变量上的多个条件,sas,Sas,我真的很想在我正在编写的sas程序上得到一些帮助 我有五个变量可以选择利息或报酬 叫他们wo1 wo2 wo3 wo4 wo5 是否有一种方法可以执行if语句,该语句检查所有五个“利息”的值,然后生成一个计算变量,该变量的总数包含wo1amt wo2amt wo3mt等金额值 而那些没有兴趣值的返回值为0 或者我需要为每一个都做一个if语句,为每一个都创建一个calc var,然后将它们和另一个一起求和 非常感谢您的帮助和指导…如果我理解正确,您可能需要多个If语句 您可以初始化一个total变

我真的很想在我正在编写的sas程序上得到一些帮助

我有五个变量可以选择利息或报酬 叫他们wo1 wo2 wo3 wo4 wo5

是否有一种方法可以执行if语句,该语句检查所有五个“利息”的值,然后生成一个计算变量,该变量的总数包含wo1amt wo2amt wo3mt等金额值

而那些没有兴趣值的返回值为0

或者我需要为每一个都做一个if语句,为每一个都创建一个calc var,然后将它们和另一个一起求和


非常感谢您的帮助和指导…

如果我理解正确,您可能需要多个If语句

您可以初始化一个total变量,然后为每个贡献变量添加该变量,如下所示:

total = 0;
if wo1 = 'Interest' then total = total + wo1amt;
if wo2 = 'Interest' then total = total + wo2amt;
if wo3 = 'Interest' then total = total + wo3amt;
if wo4 = 'Interest' then total = total + wo4amt;
if wo5 = 'Interest' then total = total + wo5amt;

数组在这种情况下工作得很好

array wo(*) wo1-wo5;
array woamt(*) wo1amt wo2amt wo3amt wo4amt wo5amt;
total = 0;
do i = 1 to 5;
   total + woamt(i)*(wo(i)='Interest');
end;

请提供示例数据、示例结果,并向我们展示您已经尝试过的内容。您的问题很好地突出了“广泛”格式数据的问题。理想情况下,您应该重新构造数据,使其只包含“wo”和“woamt”变量,以及新的第三个变量“index”或类似变量。当前的每一个观测值都将成为转置的、高的、窄的数据集中的五个观测值。然后你可以用一个IF语句做你想做的事情。对于现有的数据,下一个最好的选择是声明数组映射到两组五个变量,然后在数组上循环。谢谢提示!我将对此进行调查。谢谢你,唐-这很有意义,而且似乎最简单的选择应该无法解决之前的建议。再次感谢你的帮助。这工作做得很好!