我有很多数据集和变量,我需要修改其属性.除了需要更改变量长度的以下实例外,一切都工作正常:
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)?
说不,总是冒险,但我会尝试一下.PROC DATASETS可以修改有关数据集的元数据,而不是存储在每条记录中的数据.更改变量的长度需要更改存储在该变量的每个记录中的值(截断它或将其加长并用空格填充).因此,更改变量的长度需要重写整个数据集,这可以通过DATA步骤或PROC SQL完成,但不能通过PROC DATASETS完成.