SAS中的多个字符串到整数

Multiple strings to inntegers in SAS

我有一系列字符串变量 (x, y, z),我需要将其观察值从字符串(x= 小于 1 英里,大于 1 英里小于 5 英里等)更改为整数( xrecode= 1、2 等)。

有没有自动执行此操作的方法?我需要一个自动化的方法来摆脱这个值等于 1,那个值等于 2,...(欢迎使用循环、数组、宏)?

Reeza 是对的。例如 Proc 格式:

proc format; 
    value ToForm 
    low-1 = 'less than one'
    1-5 = 'one to five'
    5-high = 'over five'
;quit;

data wanted;
    set begin;
    format val_to_format ToForm.;
run;

有关 proc 格式的更多信息,请参阅:SAS documentation: proc format

您可以使用 INFORMAT 将文本转换为整数。

proc format ;
  invalue distance 
   'less than 1 mile'=1
   'more than 1 mile'=2
   'less then 5 miles'=3
  ;
quit;

您可以通过遍历 ARRAY 将相同的操作应用于多个相似的列。

data want ;
  set have ;
  array in x y z ;
  array out nx ny nz ;
  do i=1 to dim(in);
    out(i)=input(in(i),distance.);
  end;
run;