有没有办法使用Proc数据集更改变量的长度?

Ben*_*ndy 1 sas

我有很多数据集和变量,我需要修改其属性.除了需要更改变量长度的以下实例外,一切都工作正常:

data inputdset ;
  format inputvar $20. ;
  inputvar='ABCDEFGHIJKLMNOPQRST' ;
run ;

proc datasets lib=work nolist memtype=data ;
  modify inputdset ;
    attrib inputvar format=$50. length=50 ;
  run ;
quit ;
Run Code Online (Sandbox Code Playgroud)

运行此命令会在日志中显示以下注释:

注意:LENGTH属性无法更改,因此被忽略.Blockquote注意:WORK.INPUTDSET.DATA的MODIFY成功.

...决赛inputvar的格式为50美元.正如预期的那样但仍然有20的长度.有没有办法让这些案件的长度增加proc datasets(或者甚至更好,如果长度可以增加以匹配format)?

Que*_*tin 5

说不,总是冒险,但我会尝试一下.PROC DATASETS可以修改有关数据集的元数据,而不是存储在每条记录中的数据.更改变量的长度需要更改存储在该变量的每个记录中的值(截断它或将其加长并用空格填充).因此,更改变量的长度需要重写整个数据集,这可以通过DATA步骤或PROC SQL完成,但不能通过PROC DATASETS完成.