首页 > 解决方案 > SAS - 如何将列名作为值获取到另一列(基于其值作为条件)

问题描述

图中描绘了三列 - abc、def 和 xyz。接下来的两列来自这 3 列。min列计算这 3 列中的最小值。mincol列应该给出属于最小值的列名。 样本

标签: sas

解决方案


你可以

  • 使用该VNAME函数检索变量数组中元素的变量名称。
  • 使用该WHICHN函数查找数组中第一个出现值的索引
  • 使用MIN函数查找数组中的最小值

将它们放在一起,例如:

data have;
  input abc def xzy;
  length min 8 mincol $32;
  datalines;
 1 2  3
 2 0  3
-1 0 -3
;

data want;
  set have;
  array values abc def xzy;
  min = min(of values(*));
  mincol = vname(values(whichn(min,of values(*))));
run;

在此处输入图像描述


推荐阅读