Sas 将观察编号替换为另一个
我是个彻头彻尾的疯子。我希望你能帮我解决这个问题。 我有一个包含159个观测值的数据集。所有观测值都有一个id号(变量=id)。68号不见了。我想把id=160改为id=68,这样观察值的数量与id的数量相匹配。有人知道怎么做吗? 我的数据集如下所示: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行更改
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请详细说明你的问题——所以复习请详细说明你的问题——所以复习好了,它起作用了!我早些时候也试过,但没能成功。我一定是打错了。非常感谢你的帮助!好的,它起作用了!我早些时候也试过,但没能成功。我一定是打错了。非常感谢你的帮助!