为什么人们在SAS中只使用一个参数的min/max函数

为什么人们在SAS中只使用一个参数的min/max函数,sas,Sas,在SAS中,min/max函数只能接受一个输入参数。例如。 min(42) 我的问题是,为什么人们只想用一个输入参数来使用这些函数?它与什么相比(当只有一个输入时)?您可能使用的变量列表的大小事先未知。因此,如果该函数只处理一个值的列表,则它非常有用。例如,如果您希望将所有名称以COST开头的变量的最小值()编码为: min_cost = min(of cost:); 或者,您可以通过宏逻辑或其他代码生成技术生成值列表 proc sql noprint; select cost into :c

在SAS中,min/max函数只能接受一个输入参数。例如。
min(42)


我的问题是,为什么人们只想用一个输入参数来使用这些函数?它与什么相比(当只有一个输入时)?

您可能使用的变量列表的大小事先未知。因此,如果该函数只处理一个值的列表,则它非常有用。例如,如果您希望将所有名称以COST开头的变量的最小值()编码为:

min_cost = min(of cost:);
或者,您可以通过宏逻辑或其他代码生成技术生成值列表

proc sql noprint; select cost into :costs separated by ',' from have; quit;
data want;
  min_cost = min(&costs);
run;
注意,它仍然需要至少一个参数,但您可以通过为它提供一个额外的缺失值来对其进行编码

min_cost=min(., of cost:);
最后,如果他们正在使用procsql,那么他们实际上是在调用一个不同的函数。SQL聚合函数。该函数只允许一个参数,但它将值聚合到多个观察值上

proc sql ;
  create table want as 
    select product, min(cost) as min_cost 
    from have
    group by product
  ;
quit;

您能展示示例代码吗?这是在数据步骤中还是在SQL中?