Sas 将观察编号替换为另一个

Sas 将观察编号替换为另一个,sas,Sas,我是个彻头彻尾的疯子。我希望你能帮我解决这个问题。 我有一个包含159个观测值的数据集。所有观测值都有一个id号(变量=id)。68号不见了。我想把id=160改为id=68,这样观察值的数量与id的数量相匹配。有人知道怎么做吗? 我的数据集如下所示: obs: id: ... ... 67 67 68 69 69 70 ... ... 159 160 为了详细说明,我想将obs=159,id=160行更改

我是个彻头彻尾的疯子。我希望你能帮我解决这个问题。 我有一个包含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

这没有帮助:-/


提前谢谢

希望我正确理解您试图实现的目标:“更改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 ;  

输出:

希望我正确理解您试图实现的目标:“更改列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 ;  

输出:

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

 if _N_=159 then id=68;
这仅在数据步骤中有效

希望这有帮助


MK

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

 if _N_=159 then id=68;
这仅在数据步骤中有效

希望这有帮助


MK

请详细说明你的问题——所以复习请详细说明你的问题——所以复习好了,它起作用了!我早些时候也试过,但没能成功。我一定是打错了。非常感谢你的帮助!好的,它起作用了!我早些时候也试过,但没能成功。我一定是打错了。非常感谢你的帮助!