我的问题很简单。当数据如下时,
var1 var2 var3
10 40 60
15 10 5
我想添加一个新列 MaxValueVar
,它返回在 var1
、var2
和 中具有最大值的列的索引var3
。也就是我想做一个如下表。
var1 var2 var3 MaxValueVar
10 40 60 3
15 10 5 1
在 R 中我会使用:
apply(vector, 1, which.max)
我如何使用 SAS 来完成这项工作?
最佳答案
根据您在此处提供的示例提供一个解决方案供您引用。你没有提到如何处理关系。这里对于平局,获取第一个匹配项。
data test;
input var1 var2 var3;
datalines;
10 40 60
15 10 5
run;
data test;
set test;
maxvalue=max(of var1-var3);
maxvaluevar=0;
array vars (*) var1-var3;
do i=1 to dim(vars);
if maxvaluevar=0 then maxvaluevar=i*(maxvalue=vars(i))+maxvaluevar;
end;
drop i maxvalue;
run;
关于r - 将具有最大值的列的索引添加为新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10004948/