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。