用另一个替换观察号

时间:2016-09-30 08:43:11

标签: sas

我是SAS-noobie。我希望你能帮我解决这个问题。 我有一个包含159个观测值的数据集。所有观察都有一个id号(变量= id)。缺少68号。我想将id = 160更改为id = 68,因此观察数量与id数相符。有谁知道如何做到这一点? 我的数据集看起来像这样:

    obs:  id:
    ...   ...
    67    67
    68    69
    69    70
    ...   ...
    159   160

所以详细说明我想改变行obs = 159,id = 160到行obs = 68,id = 68。

我试过了:

如果obs = 159则id = 68;

这没有帮助: - /

提前致谢!

2 个答案:

答案 0 :(得分:0)

希望我理解您要尝试完成的内容:“更改列 ID 中的值”

参见示例:

DATA survey; 
INPUT id sex $ age inc r1 r2 r3 ; 
DATALINES; 
1  F  35 17  7 2 2 
81  M  44 11  7 7 7 
2   F  34 17  6 5 3 
18  M  40 14  7 5 2 
34  F  47  6  6 5 6 
160  M  35 17  5 7 5 
;

proc print data=survey; *print the dataset survey created as you can     see that 160 is in original dataset;

data recode;
set survey;
if id=160 then id=68;
run;

PROC SORT DATA=recode OUT=surveysorted ; *sort the data;
BY id ;
RUN ;

PROC PRINT DATA=surveysorted ; *print new sorted dataset;
RUN ;  

输出:**output for proc print data=survey; and proc print DATA=surveysorted;**

答案 1 :(得分:0)

如果您想根据表中的观察顺序修改值,则应键入:

 if _N_=159 then id=68;

这仅适用于数据步骤。

希望这会有所帮助

MK