2016-09-30 4 views
1

Я полный SAS-noobie. Надеюсь, вы сможете помочь мне в этом вопросе. У меня есть набор данных с 159 наблюдениями. Все наблюдения имеют номер id (variable = id). Номер 68 отсутствует. Я хотел бы изменить id = 160 на id = 68, поэтому число наблюдений соответствует номерам идентификаторов. Кто-нибудь знает как это сделать? Мой набор данных выглядит примерно так:Заменить номер наблюдения другим

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

Так разработать я хотел бы изменить строку набл = 159, ID = 160 грести набл = 68, ID = 68.

Я попытался:

, если набл = 159, то ID = 68;

Это не помогло: -/

Заранее спасибо!

+0

Просьба уточнить ваш вопрос --So Отзывы –

ответ

0

надеюсь, что я правильно понимаю, что вы пытаетесь достичь: «изменение значения в колонке идентификатор»

Смотрите пример:

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;**

+0

Хорошо, это работает! Я пробовал то же самое раньше, но не смог заставить его работать. Должно быть, я что-то неправильно набрал. Большое вам спасибо за вашу помощь! – mmbc

+0

@mmbc добро пожаловать. пожалуйста, примите ответ. – sb0709

0

Если вы хотите изменить значение, основанное на порядке наблюдения в таблице, которое вы должны ввести:

if _N_=159 then id=68; 

Это работает только на этапе данных.

надеюсь, что это помогает

MK

Смежные вопросы