如何在输出中拆分CamelCase变量名?
根据此SAS Blog article,
打印数据时,会自动拆分[CamelCase]变量名称 您在下一个大写字母的输出。 (注意:这取决于 数据字段的长度。)
然而,当我尝试
时data test1;
input ThisIsALongNameThatIHopeSplits $;
datalines;
Hello,
World!
;
run;
proc print data = test1;
run;
变量名称不会拆分。
文章确实说分割取决于数据字段的长度。但是,如果我修改我的数据集,
data test2;
length ThisIsALongNameThatIHopeSplits $ 250;
input ThisIsALongNameThatIHopeSplits $ &;
datalines;
Hello, World! It's been a long time since we last saw one another. It was nice knowing you. Goodbye, cruel world!
;
run;
proc print data = test2;
run;
结果是一样的。
如果 ODS系统必须将名称分成两行或更多行才能堆叠 她将会看到一个更令人愉悦的垂直布局 喜欢在caseTransition中拆分,所以你的多字变量 名字更有可能在"愉悦"边界。
所以,我尝试将它输出到.rtf。
ods rtf file = "C:\Users\&SYSUSERID\Documents\tests.rtf";
proc print data = test1;
run;
proc print data = test2;
run;
ods rtf close;
无。 (除了有关数据本身的警告而不是变量名称。)变量名称仍然是未分割的。
WARNING: Data too long for column "ThisIsALongNameThatIHopeSplits"; truncated to 98 characters to fit.
如果索赔不是来自这些声誉良好的消息来源,我会称之为jiggery-pokery。有没有选项或我遗失的东西?
答案 0 :(得分:2)
它似乎不适用于HTML输出(9.3中的默认值),但它适用于列出输出,这可能是这些社区来源所指的。
尝试以下方法:
ods html close;
ods listing;
data test2;
length ThisIsALongNameThatIHopeSplits
ThisIsALongNameThatIHopeSplits2
ThisIsALongNameThatIHopeSplits3
ThisIsALongNameThatIHopeSplits4
$ 250;
input ThisIsALongNameThatIHopeSplits $ &;
ThisIsALongNameThatIHopeSplits2=ThisIsALongNameThatIHopeSplits;
ThisIsALongNameThatIHopeSplits3=ThisIsALongNameThatIHopeSplits;
ThisIsALongNameThatIHopeSplits4=ThisIsALongNameThatIHopeSplits;
datalines;
Goodbye, cruel world!
;
run;
proc print data = test2;
run;
给出了: