有人可以向我解释为什么我的代码中只有第一个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
谢谢!
答案 0 :(得分:1)
很难说没有看到你的所有数据,但我怀疑:是positivelymphnodes1
字符还是数字?它实际上是否等于"."
?
如果你想说"如果缺少PositiveLymphNodes1",那么你可以这样说:
if missing(positivelymphnodes1) then ...
您也可以使用coalesce
或coalescec
执行相同的操作(后者是返回值中的字符,前一个数字)。它选择了第一个非缺失参数。 - 所以如果缺少第一个参数,它会选择第二个参数。
positiveLymphNodes = coalescec(PositiveLymphNodes1, put(positiveLymphNodes2,2.));
new_posLymph = coalescec(positiveLymphNodes2, put(positiveLymphNodes,2.));
我很想知道为什么你只在一个地方而不是另一个地方使用put
- 在两者中使用它,或者两者都不使用,我建议。