SAS格式将文本附加到字符变量

时间:2013-09-13 20:18:22

标签: sas

是否可以创建将文本附加到字符变量末尾的SAS格式?我有一个带有大量文本的注释变量。理想情况下,我想在某一点切断文本,并在最后加上“......”。我知道我可以创建一个新的变量来完成这个,但我希望这是一个我可以应用的格式。有任何想法吗?

2 个答案:

答案 0 :(得分:0)

我认为你不能把它变成一种格式。

我认为你很容易做到:

data want;
set have;
newcomment = ifc(length(comment) le 300, comment, substr(comment,1,300)||'...');
run;

我认为你真的不能比这更好。不幸的是,据我所知,你不能为字符变量写一个PICTURE格式(这就是你要求的)。

IFC返回基于第一个参数的布尔值的字符值,如Excel的IF。)

答案 1 :(得分:0)

另一种基于@Joe提到的方法的方法是使用视图:

proc sql;
create view want_view as 
select
a.SomeVar
,case 
 when length(a.comment) <=300 then a.comment
 else substr(a.comment,1,300)||'...')
end as truncated_comment length = 303
from have as a;
quit;

在这种情况下使用视图的优点是

  1. 您获得类似格式的功能
  2. 您无需创建新列
  3. 如果您需要调查以300字节截断的列 - 您仍然可以访问物理表中未截断的注释。
  4. 视图不会花费您的磁盘空间。