PROC SQL SAS中的长度和连续
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PROC SQL SAS中的长度和连续相关的知识,希望对你有一定的参考价值。
我想在select语句中为某些特定列定义长度,我想在SAS proc sql中连接两列,即sponsor id
和sponsor
,如“ABC-123”。请帮忙这里是代码
proc sql;
select
project_id,
sponsor_id,
empl_country,
region,
empl_dept_descr,
empl_bu_descr,
sponsor,
full_name,
mnth_name FROM Stage0;
quit;
答案
如果您不知道长度,可以使用strip()函数来删除前导和尾随空格,在这种情况下,它将删除catx()默认长度生成的空格:
strip(catx(' - ',sponsor_id,sponsor))
码:
proc sql;
select
project_id,
sponsor_id,
empl_country,
region,
empl_dept_descr,
empl_bu_descr,
sponsor,
full_name,
mnth_name ,
/* New column */
strip(catx('-', sponsor_id, sponsor)) as new_id
FROM Stage0;
quit;
另一答案
CATX
函数将连接任意数量的任何类型的参数,剥离值并在每个参数之间放置一个公共分隔符(也被剥离)。例如:
proc sql;
create table want as
select
catx('-', name, age) as name_age length=20
, catx(':', name, sex, height) as name_gender_height
from sashelp.class;
如果分配CATX结果的变量没有指定长度,则新变量的长度将为200个字符。
剥离意味着删除前导和尾随空格。缺少值的参数不会成为串联的一部分。
以上是关于PROC SQL SAS中的长度和连续的主要内容,如果未能解决你的问题,请参考以下文章
SAS PROC SQL UNION ALL - 最小化列长度
SAS / PROC SQL - 只要有重复(不只是删除重复),删除BY组中的所有观察