通过整个数据降低价值

时间:2015-05-18 21:27:04

标签: sas

我想将无效值转换为单个值,并且它们只打印具有这些值=>的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;

1 个答案:

答案 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)))