更改SAS数据集中的变量长度

更改SAS数据集中的变量长度,sas,Sas,我需要更改现有数据集中的变量长度。我可以更改格式和信息,但不能更改长度。我犯了一个错误。文件说这是可能的,但没有例子 这是我的问题。我的数据源可能会更改,因此我不想在导入时预定义列。我想做一个通用导入,然后查找某些列并调整长度 我尝试过PROC-SQL和数据步骤。看起来唯一的方法是重新创建数据集或列。我不想这么做 谢谢, Donnie如果将LENGTH语句放在SET语句之前,则在数据步骤中,可以更改变量的长度。显然,如果数据长度超过新长度,则会被截断 但是,使用数据步骤更改长度也会重新创建数据集

我需要更改现有数据集中的变量长度。我可以更改格式和信息,但不能更改长度。我犯了一个错误。文件说这是可能的,但没有例子

这是我的问题。我的数据源可能会更改,因此我不想在导入时预定义列。我想做一个通用导入,然后查找某些列并调整长度

我尝试过PROC-SQL和数据步骤。看起来唯一的方法是重新创建数据集或列。我不想这么做

谢谢,
Donnie

如果将LENGTH语句放在SET语句之前,则在数据步骤中,可以更改变量的长度。显然,如果数据长度超过新长度,则会被截断


但是,使用数据步骤更改长度也会重新创建数据集,因此我对您的问题的这一部分感到困惑。

在数据步骤中更改变量长度的唯一方法是在读入源(集)数据集之前定义它


相反,您可以在proc sql中使用alter语句

设置数据集后,变量的长度保持不变。如果需要更改列的长度,请在设置数据集之前添加长度语句

data a;
  length a, b, c $200 ;
  set b ;
run ;

年轻玩家的陷阱-这不会自动更改变量的
格式
,以匹配新长度,这实际上可能会在新数据集中“隐藏”长字符串的分配。因此,同时更改长度和格式是值得的,这样所有内容都可以整齐地匹配。