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;
我有一系列字符串变量 (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;