r - 将具有最大值的列的索引添加为新列

标签 r sas max apply

我的问题很简单。当数据如下时,

var1    var2    var3
10      40      60
15      10      5

我想添加一个新列 MaxValueVar,它返回在 var1var2 中具有最大值的列的索引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/

相关文章:

r - 使用 := in data. 表,其中包含 i 的子集和更新向量

R Shiny 交互式地选择变量来执行计算

r - 过滤以在特定列中的特定值第一次出现之前删除所有行

sas - 将日期时间转换为 proc-sql sas 中的日期

java - 从给定变量中获取最大变量

r - 计算繁重的R小插曲

sas - 屏蔽 sysget 调用输出中的 & 符号

sas - 如何在SAS结果输出窗口中显示一个句子

sql - MySQL - 连接表,仅检索最大 ID

javascript - 是否可以根据另一个表单的输入更改 HTML5 范围 slider 的最小值和最大值?