2015-06-29 2 views
-1

Моя проблема заключается в вытягивании правых переменных из данных. Мои данные следующие:Вытягивание данных после сортировки таблицы

id term grade number 
35 2005 I  0 
35 2005 F  1 
35 2005 W  2 
46 2003 A  0 
46 2003 B  1 
46 2003 F  2 
46 2003 I  3 

Я отсортировал таблицу, которую у меня есть, и дал номер 0-1-2 и так далее. Это пример после сортировки. То, что мне нужно, это то, что классы с одинаковыми идентификаторами начинаются с I и F и W. Как и для идентификатора 35. Поэтому мне нужно, чтобы в этой таблице были первые три наблюдения id 35.

+1

Пожалуйста, не отправляйте запросы на такой код; по крайней мере, сделайте некоторую попытку. Эта проблема хорошо освещена в Интернете. – Joe

ответ

2

Вот один подход Proc SQL, вы также можете попробовать 2XDOW:

data have; 
    input (id term grade) (:$8.) number; 
    cards; 
35 2005 I  0 
35 2005 F  1 
35 2005 W  2 
46 2003 A  0 
46 2003 B  1 
46 2003 F  2 
46 2003 I  3 
; 

proc sql; 
    create table want as 
     select * from have 
      group by id 
       having sum(GRADE='I' AND NUMBER=0) >0 
        AND sum(GRADE='F' AND NUMBER=1) >0 
        AND sum(GRADE='W' AND NUMBER=2) >0 
    ; 
QUIT; 
+0

Это не дает мне правильного решения. Это должно быть сначала I и F, а затем W. Это не дает мне в этой строке – joys

+0

Пожалуйста, объясните, как это сделать. Он должен работать так, как он работает с вашими образцами данных. Просьба привести пример, как он не работает. –

+0

Если вы только что заказали свою проблему, добавьте в заявку Haikuos инструкцию заказа (по номеру), иначе его решение будет именно тем, что вы хотите, насколько я понимаю ваш пост – kl78

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

  • Нет связанных вопросов^_^