我创建了一个PROC REPORT,其中包含输入数据集中的多个列以及在COMPUTE块中创建的其他一些列。一些列是使用cats()创建的,以连接其他列的值等。
是否可以使用ods escapechar='^' ;
将回车符插入列中?我没有成功这样做。对于其中一个列,我想这样做,但我无法使其工作:_C4_ = cats(_C2_,"^", _C3);
列 C2 和 C3 被计算,数字列
感谢您的帮助。
答案 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