更改SAS中列的字节大小

时间:2017-04-10 09:37:25

标签: sas

字符串列的默认字节大小为200字节。因此它会导致问题:如果文本超过200个字节,则会被剪切。

我需要使用代码(不使用按钮)将其增加到300。我该怎么做? 我尝试更改格式和信息,但这并没有影响大小。

format SmsText $1000.;
informat SmsText $1000.;

整个代码:

data early_dpd_for_export_cut;
    retain phoneNumber name_io url contractNumber SmsText;
    set early_dpd_for_export_cut;
    format SmsText $1000.;
    informat SmsText $1000.;
    SmsText1 = '! Не успели оплатить кредит? Перейдите по ссылке' ;
    SmsText = catx("", name_io, SmsText1);
    SmsText = catx("", SmsText, links);
    SmsText2 = 'и сообщите дату оплаты просроченной задолженности по кредитному договору. ПАО Банк "ФК Открытие". Тел. 88005007044.';   
    SmsText = catx("", SmsText, SmsText2);
    drop SmsText1;
    drop SmsText2;
run;

3 个答案:

答案 0 :(得分:1)

data early_dpd_for_export_cut;
    retain phoneNumber name_io url contractNumber SmsText;
    attrib length SmsText $300 format $300.;
    set early_dpd_for_export_cut;
    SmsText1 = '! Не успели оплатить кредит? Перейдите по ссылке' ;
    SmsText = catx("", name_io, SmsText1);
    SmsText = catx("", SmsText, links);
    SmsText2 = 'и сообщите дату оплаты просроченной задолженности по кредитному договору. ПАО Банк "ФК Открытие". Тел. 88005007044.';   
    SmsText = catx("", SmsText, SmsText2);
    drop SmsText1;
    drop SmsText2;
run;

尝试像这样的长度语句。

  

长度和格式语句的顺序与Longfish

的评论相同

答案 1 :(得分:1)

通过以下四种方式之一控制长度:

  • Length声明(或attrib length
  • Format声明(或attrib format
  • Set声明
  • 分配(将变量设置为等于某事物)

数据步骤中遇到的第一个(从上到下,从左到右)将设置变量的长度。

对于数字变量,您可以随时更改长度。对于字符变量,您无法更改数据步骤中第一次遇到的长度。 (这是因为数字长度仅影响输出数据集;出于速度原因,数据步骤执行期间所有数字都是8个字节。但字符长度会立即生效并持续存在。)

因此,为了更改set上已存在的变量的长度 作为字符变量的语句,您必须在该列表中具有其中一个其他语句(lengthformatattrib,其中包含这两个属性之一或赋值){ {1}}陈述。

您可以查看length的文档以获取更多信息。

答案 2 :(得分:0)

Joe的答案非常完整 但是从一些评论来看,原始数据集可能还有格式附加到字符变量。这可能导致出现的值被截断。最好的办法是从字符变量中删除$nn.格式。

data want ;
  length make_me_longer $300 ;
  set have ;
  format _character_;
run;