嗨我有一个df,如下所示
**名称| min_date | max_date | act_val | A | B | C | d
sam 2016-06-01 2016-06-27 30724 38115 635 2541 26
fred 2016-06-01 2016-06-27 29270 38115 635 2541 26
hays 2016-06-01 2016-06-27 29270 38115 635 2541 26
2016-16-01 2016-06-27 700 38115 635 2541 26
cains 2016-06-01 2016-06-27 24 38115 635 2541 26
alan 2016-06-01 2016-06-27 28 38115 635 2541 26
vincy 2016-06-01 2016-06-27 3000 38115 635 2541 26
我想比较" act_val"与所有其他列一起,以获得最近的>变量名称,即在行1中,30724接近于A中的值(30724~ = 38115)
|名字| min_date | max_date | act_val | A | B | C | D | near_column
sam 2016-06-01 2016-06-27 30724 38115 635 2541 26 A
fred 2016-06-01 2016-06-27 29270 38115 635 2541 26 A
hays 2016-06-01 2016-06-27 29270 38115 635 2541 26 A
prem 2016-06-01 2016-06-27 700 38115 635 2541 26 B
cains 2016-06-01 2016-06-27 24 38115 635 2541 26 D
alan 2016-06-01 2016-06-27 28 38115 635 2541 26 D
vincy 2016-06-01 2016-06-27 3000 38115 635 2541 26 C
提前致谢
答案 0 :(得分:1)
我们可以使用max.col
df1$near_column <- names(df1)[-1][ max.col(-abs(df1[-1]- df1[,1]))]
df1$near_column
#[1] "A" "A" "B" "D" "D" "C"