Возможность преобразования наблюдения в 0, но у них были проблемы с их общим - PullRequest
0 голосов
/ 17 октября 2018

У меня набор необработанных данных выглядит следующим образом: введите здесь описание ссылки

И я попытался преобразовать наблюдения, имеющие «T», в 0, а затем прочитать данныеустановить и распечатать.Только это.

Однако, с моим кодом, просто посмотрев на первое наблюдение в строке 5, очевидно, что-то не так.Например, первое наблюдение за «ноябрь» не должно быть 0.

Я не мог понять, что пошло не так, и мне интересно, кто-нибудь хотел бы дать мне несколько советов о том, что я могу сделать для следующего?Большое спасибо!Высоко ценится.

Мой код указан ниже:

    INFILE "&DIRLSB.Pr1Snowfall1.csv" DSD FIRSTOBS=5;
  DROP i;
  INPUT Season $@;
  INPUT Year 1-4  Season 1-7 Sep Oct Nov Dec Jan Feb Mar Apr May Total;
  ARRAY Months (*) Sep -- May;
  DO i = 1 TO dim(Months);
  IF Months(i)=. Then Months(i)=0;
  END;
  RUN;

1 Ответ

0 голосов
/ 17 октября 2018

Полагаю, у вас пропал T;оператор где-то, который читает T (гонку) как отсутствующий T. ".T не равно."

Я бы использовал функцию объединения.Там действительно нет необходимости менять отсутствующий T на 0, не так ли?

missing t;
data snow;
   infile cards firstobs=2;
   input Season:$7. Sep Oct Nov Dec Jan Feb Mar Apr May Total;  
   array mth[*] Sep--May;
   do i = 1 to dim(mth);
      mth[i] = coalesce(mth[i],0);
      end;
   t = sum(of mth[*]);
   drop i;
   cards;
Season Sep Oct Nov Dec Jan Feb Mar Apr May Total 
1884-85 0 T 1 27.1 22.2 17 3.5 19.5 T 90.3 
1885-86 0 1.7 8.2 8.4 16.9 16 6.5 7 0 64.7 
1886-87 0 T 22.2 12.5 12 18.4 6.3 1.2 0 72.6 
1893-94 0 0.5 6.1 27.6 20 29.5 5.4 13.3 0 102.4 
1894-95 0 T 11.1 22.1 26.5 23.6 9.5 0.6 0 93.4 
1895-96 0 1.5 5.9 8.7 22.5 39.1 45.1 1 0 123.8 
1896-97 0 T 5.5 13.9 20.1 13.7 8.1 5.2 0 66.5 
1897-98 0 0 10.1 18.4 32.1 26.8 1.2 2.4 0 91 
1898-99 0 T 10.6 27 16.6 16.3 21.2 4.3 T 96 
1899-00 T T 1.3 21.5 24.7 28.5 54 1.3 0 131.3 
1906-07 0 5 5.7 18.7 11.7 15.7 3.1 2.5 1.3 63.7 
1907-08 0 0 2.2 11.6 16.5 19.8 7.9 6.3 3 67.3 
1908-09 0 0.5 4.6 10 22.5 6.1 9.7 9.8 3.3 66.5 
1909-10 0 T 1.7 14.6 22 42.7 3.4 0.5 0 84.9 
1910-11 0 2.2 15.7 29.8 9.5 30 13.5 4.7 2 107.4 
1911-12 0 0 6.5 7.5 21.5 10.8 8.8 6.9 T 62 
;;;;
   run;
proc print;
   run;
...