1

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

4

2 回答 2

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. 该视图不会占用您的磁盘空间。
于 2013-09-15T12:03:07.280 回答
0

我认为您无法将其构建为一种格式。

我认为您可以轻松做到:

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

我不认为你真的能得到比这更好的了。不幸的是,据我所知,您无法PICTURE为字符变量编写格式(这就是您所要求的)。

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

于 2013-09-13T20:24:58.313 回答