中国报告:列中的回车符添加到连接字段

时间:2013-09-19 10:09:22

标签: sas

我创建了一个PROC REPORT,其中包含输入数据集中的多个列以及在COMPUTE块中创建的其他一些列。一些列是使用cats()创建的,以连接其他列的值等。

是否可以使用ods escapechar='^' ;将回车符插入列中?我没有成功这样做。对于其中一个列,我想这样做,但我无法使其工作:_C4_ = cats(_C2_,"^", _C3); C2 C3 被计算,数字列

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这取决于您的ODS目的地,但您需要在转义字符后实际执行某些操作。

转义字符只告诉SAS以下字符是特殊的而不是常规文本。

我认为你想要的是_C4_ = cats(_C2_,'^n',_C3_);

^ n应该转义“n”,它将被解释为换行符。

以下是一些示例代码:

data test;
input name $ var1 var2 var3;
datalines;
bob 1 2 3
ted 4 5 6
jon 7 8 9
;
run;

ods escapechar='^';

proc report data=test;
  columns name var1 var2 calc var3;
  define calc /computed;
  compute calc / character length=30;
    calc = cats(_C2_,'^n',_C3_);
  endcomp;
run;

这适用于EG的原生结果输出,应该可以在PDF或其他换行符支持目的地中使用。定义行并不是绝对必要的(事实上,当我排除它时,它正确地证明了该列的正确性),但我认为你无论如何都要包括它们来设置列标题和格式。

如果要将var1和var2强制为特定格式,可以在cat函数中用put(_C2_,comma16.1)

替换它们

你可以使用ODS样式和转义字符做很多很酷的事情(比如PDF输出中的下划线子标题或突出显示不同颜色的交替行) 有关基础知识的参考:http://www2.sas.com/proceedings/forum2007/099-2007.pdf