Добавление метки к переменным SAS - PullRequest
0 голосов
/ 15 мая 2018

У меня есть набор данных в SAS с именем "Полет" , и я хочу пометить все строки одного конкретного столбца "Перевозчик" значениями, которые соответствуют ("Flght_carrier_code") из другого набора данных называется "Авиакомпания" .

Пожалуйста, предложите какой-нибудь метод.

Пример набора данных 1 - «Полет»

date      carrier   flight  tailnum air_time
01-01-2013  UA      1714    N24211  227
01-01-2013  AA      1141    N619AA  160
01-01-2013  B6       725    N804JB  183
01-01-2013  DL      461     N668DN  116
01-01-2013  UA      1696    N39463  150
01-01-2013  B6      507     N516JB  158
01-01-2013  EV      5708    N829AS  53
01-01-2013  B6      79      N593JB  140
01-01-2013  AA      301     N3ALAA  138
01-01-2013  B6      49      N793JB  149
01-01-2013  B6      71      N657JB  158

Пример набора данных 2 - «Авиакомпания»

Flght_carrier_Code  name
9E              Endeavor Air Inc.
AA              American Airlines Inc.
AS              Alaska Airlines Inc.
B6              JetBlue Airways
DL              Delta Air Lines Inc.
EV              ExpressJet Airlines Inc.
F9              Frontier Airlines Inc.
FL              AirTran Airways Corporation
HA              Hawaiian Airlines Inc.
MQ              Envoy Air
OO              SkyWest Airlines Inc.
UA              United Air Lines Inc.
US              US Airways Inc.
VX              Virgin America
WN              Southwest Airlines Co.
YV              Mesa Airlines Inc.

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Я бы просто добавил метку к этому коду выше

proc sql;
  create view work.flights_v as
  select 
    coalesce(airlines.name, flights.carrier) as carrier_name label="carrier"
  , flights.*
  from 
    flights
  left join 
    airlines
  on
    flights.carrier = airlines.Flght_carrier_Code
  ;
0 голосов
/ 15 мая 2018

Маркировка, которую вы описываете, может считаться маркировкой строки , но более распространенной терминологией является:

  • отображение значения
  • форматирование
  • левое соединение
  • слияние
  • поиск

Примечание: формат SAS похож на автоматический в системном левом соединении.

SQL

Вы пометили proc-sql, поэтому одним из подходов является левое соединение, при котором строки и значения несущих сохраняются без совпадения.Также может потребоваться представление SQL для предотвращения создания более новой таблицы большего размера

proc sql;
  create view work.flights_v as
  select 
    coalesce(airlines.name, flights.carrier) as carrier_name
  , flights.*
  from 
    flights
  left join 
    airlines
  on
    flights.carrier = airlines.Flght_carrier_Code
  ;

FORMATS

Пользовательские форматы обычно связаны с переменнымиобработка уровня представления данных во время просмотра и вывода на экран - например: EG grid, ViewTable, вывод процедур.Пользовательский формат может быть создан из набора данных, например airlines.Пользовательские форматы могут быть постоянными (сохраняться после окончания сеанса SAS) или временными (существовать только во время сеанса SAS).Прочитайте документацию о Proc FORMAT CNTLIN=, если хотите попробовать.

...