Sas 如何找到列中的最大观测长度?
如何在一列中找到最大观察长度,以便我能够Sas 如何找到列中的最大观测长度?,sas,Sas,如何在一列中找到最大观察长度,以便我能够 使用输入时应用格式化输入 data class; input name$; cards; Alfred Alice Barbara Carol Henry ; run; 您可以使用LENGTH函数创建新列。然后可以使用MAX函数找到最大值 此外,您还可以探索其他选项-LENGTHC、LENGTHM、LENGTHN。您需要使用保留功能并遍历观测值: data _null_; set sashelp.c
使用输入时应用格式化输入
data class;
input name$;
cards;
Alfred
Alice
Barbara
Carol
Henry
;
run;
您可以使用LENGTH函数创建新列。然后可以使用MAX函数找到最大值
此外,您还可以探索其他选项-LENGTHC、LENGTHM、LENGTHN。您需要使用保留功能并遍历观测值:
data _null_;
set sashelp.class;
retain max_name 0;
if length(name)>max_name then do;
max_name=length(name);
call symput("max_name",put(max_name,best.));
end;
run;
%put &max_name;
刚刚意识到proc sql更容易:
proc sql;
select max(length(name))
from sashelp.class;
quit;
或者使用retain保持最大值不变(如果length(name)>length_field,那么length_field=length(name)。然后只需读入一次并输出proc sql版本的最后一行,如果希望在后续代码中使用检索到的值,请尝试将max(length(name))选择到:macro_var。