只有一个IF ELSE声明工作SAS

时间:2017-03-29 17:32:49

标签: sas

有人可以向我解释为什么我的代码中只有第一个IF ELSE语句有效吗?我试图将多个变量合并为一个。

DATA BCMasterSet2;
SET BCMasterSet;
drop PositiveLymphNodes1; 
if PositiveLymphNodes1 = "." then PositiveLymphNodes =   
put(PositiveLymphNodes2, 2.);
else PositiveLymphNodes = PositiveLymphNodes1;
if PositiveLymphNodes2 = "." then new_posLymph = put(PositiveLymphNodes, 
2.);
else new_posLymph = PositiveLymphNodes2;
RUN;

以下是错误输出结果的简短截图:OUTPUT

谢谢!

1 个答案:

答案 0 :(得分:1)

很难说没有看到你的所有数据,但我怀疑:是positivelymphnodes1字符还是数字?它实际上是否等于"."

如果你想说"如果缺少PositiveLymphNodes1",那么你可以这样说:

if missing(positivelymphnodes1) then ...

您也可以使用coalescecoalescec执行相同的操作(后者是返回值中的字符,前一个数字)。它选择了第一个非缺失参数。 - 所以如果缺少第一个参数,它会选择第二个参数。

positiveLymphNodes = coalescec(PositiveLymphNodes1, put(positiveLymphNodes2,2.));
new_posLymph = coalescec(positiveLymphNodes2, put(positiveLymphNodes,2.));

我很想知道为什么你只在一个地方而不是另一个地方使用put - 在两者中使用它,或者两者都不使用,我建议。