1
删除缺失观察我有反复观察的数据集(例如,在5周的观察结果)移调过程,而在SAS
也有多个行每个个体(未每个人都一样)
ID val1 val2 val3 val4 val5
1 0 0 1 1 1
1 . . 2 2 2
2 1 1 1 . .
2 2 2 2 . .
3 1 1 . . .
步骤1 :我申请移调过程
proc transpose data=original out=tranposed;
by ID; var val1-val&_valcount; /* in this example &_valcount = 5 */
run;
ID val col1 col2
1 val1 0 .
1 val2 0 .
1 val3 1 2
1 val4 1 2
1 val5 1 2
2 val1 1 2
2 val2 1 2
2 val3 1 2
2 val4 . .
2 val5 . .
3 val1 1 .
3 val2 1 .
3 val3 . .
3 val4 . .
3 val5 . .
步骤2:nmiss()与缺失值仅
删除行data transposed; set transposed;
if nmiss(of _numeric_) EQ &_repeatcount then delete;
/* in this example &_repeatcount = 2 */
run;
ID val col1 col2
1 val1 0 .
1 val2 0 .
1 val3 1 2
1 val4 1 2
1 val5 1 2
2 val1 1 2
2 val2 1 2
2 val3 1 2
3 val1 1 .
3 val2 1 .
由于原始数据集大,调换数据集的大小是非常大的,它需要很长的计算时间去换位数据集。
是否有任何方法来步骤1 &步骤2组合成单个步骤,如删除观测而转置数据集,以节省存储和时间?
你提前知道了 “repeatcount”?每个小组都一样吗? – Tom
是的,我提前知道“重复计数”。每个小组都不一样。我只知道,“最大” repeatcount – jaerung
不应该有办法做到这一点使用数据集选项 - 在哪里? – Reeza