如何在更改大小写时拆分CamelCase变量名称

时间:2017-03-31 01:36:20

标签: split sas

如何在输出中拆分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;

结果是一样的。

SAS Community Wiki

  

如果   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。有没有选项或我遗失的东西?

1 个答案:

答案 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;

给出了:

enter image description here