向SAS变量添加标签

向SAS变量添加标签,sas,proc-sql,Sas,Proc Sql,我在SAS中有一个名为“Flight”的数据集,我想用匹配的值标记一个特定列“Carrier”的所有行 (“飞行承运人代码”)来自另一个数据集 称为“航空公司” 请建议一些方法。 样本数据集1-“飞行” 样本数据集2-“航空公司” 您描述的标签可以被视为行标签,但更常见的术语是: 值映射 格式化 左连接 合并 查找 注意:SAS格式类似于系统内的自动左连接 SQL 您标记了procsql,因此一种方法是左连接,它将保留不匹配的行和载波值。您可能还需要一个sql视图,以防止创建较新的较大的表

我在SAS中有一个名为“Flight”的数据集,我想用匹配的值标记一个特定列“Carrier”的所有行 (“飞行承运人代码”)来自另一个数据集 称为“航空公司”

请建议一些方法。

样本数据集1-“飞行”

样本数据集2-“航空公司”


您描述的标签可以被视为行标签,但更常见的术语是:

  • 值映射
  • 格式化
  • 左连接
  • 合并
  • 查找
注意:SAS格式类似于系统内的自动左连接

SQL

您标记了
procsql
,因此一种方法是左连接,它将保留不匹配的行和载波值。您可能还需要一个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
  ;
格式


在查看和输出呈现时,自定义格式通常涉及变量数据表示级别的处理——例如:网格、ViewTable、过程输出。可以从数据集(如
airlines
)创建自定义格式。自定义格式可以是永久的(在SAS会话结束后保持)或临时的(仅在SAS会话期间存在)。如果您想尝试这种方法,请阅读有关
Proc FORMAT CNTLIN=
的文档。

我只想在上面的代码中添加标签

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
  ;

听起来与向数据集或变量添加标签无关。相反,如果看起来您想要解码一个变量。你试过什么?您创建了格式吗?连接?是否要使用与代码关联的名称的列?然后,使用连接!
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
  ;
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
  ;