我想将无效值转换为单个值,并且它们只打印具有这些值=>的obs的ID。我有多个错误是第二部分(循环),是否有可能以某种方式修复此代码,或者这样做根本不可能这样做?
data comb8;set comb;
if q2 not in (1,2,3,4,5)then q2=666;
if q3 not in (1,2,3,4,5)then q3=666;
if q10 not in (1,2,3,4,5)then q10=666;
if gender not in(0,1)then gender=666;
if married not in(0,1)then married=666;
run;
data comb10; set comb8;
do i=1 to n;
if i NE 666 then drop(?????????);
end;
keep id;
run;
答案 0 :(得分:2)
希望我明白这一点 - 你所追求的最终结果就是保持任何观察的观察次数,其中包含你要检查的任何标准的无效值?如果是这样,试试这个:
armlink --map --ro-base=0x0 --rw-base=0x0008000 \
--first='boot.o(RESET)' --datacompressor=off \
CMakeFiles/blinky.dir/blinky.c.o -o blinky.elf
data comb8(keep=id where=(not missing(obid)));
set comb;
if q2 not in (1,2,3,4,5) then obid=_n_;
if q3 not in (1,2,3,4,5) then obid=_n_;
if q10 not in (1,2,3,4,5) then obid=_n_;
if gender not in(0,1) then obid=_n_;
if married not in(0,1) then obid=_n_;
run;
是一个自动变量,用于标识已从set语句加载的观察编号。您可以在找到问题时将obid设置为此值,然后使用_n_
仅保留具有无效值的观察值
以防万一以后对其他人有所帮助......
(where=(not missing(obid)))