Вот структура моих данных ниже:

Мне нужно только ID 2, так как все пациенты живы, поэтому пытаюсь удалить ID 1:

ID   sex  status

1      2       A

1      2       A

1      2       A

1      2       D

2      1       A

2      1       A

2      1       A
sas
0
Douce 21 Апр 2016 в 00:52

3 ответа

Лучший ответ

Если вы действительно хотите удалить записи из исходного набора данных, вы можете сделать это с помощью:

PROC SQL;
   DELETE FROM MyData WHERE ID = 1;
QUIT;

Однако, если вы хотите сохранить исходный набор данных как есть; возможно, вы снова воспользуетесь им, лучше всего будет создать из него новый набор данных, например:

PROC SQL;
   CREATE TABLE MyFilteredData AS
   SELECT ID, sex, status
   FROM MyData
   WHERE ID = 2;
QUIT;

Или

DATA MyFilteredData;
   SET MyData;
   IF ID = 2;
RUN;
0
Nick 24 Апр 2016 в 14:42
proc sql;
    delete from your_data where id ~= 2;
quit;
0
superfluous 21 Апр 2016 в 14:37

Этот PROC SQL создаст новый набор данных Want из исходного набора данных Have, включая только идентификаторы, у которых нет status = "D":

proc sql;
    create table Want as
    select *
    from Have
    where ID not in
        (select distinct ID
         from Have
         where status="D")
    ;
quit;
0
Dmitry Shopin 22 Апр 2016 в 17:04