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