我有一个这样的数据框:
V1 V2 V3
0.4 -0.9 0.6
0.8 -0.2 0.4
-0.6 0.1 0.8
我想获得最大值(符号无关紧要)并在最后打印一列中具有最高值的列的名称。
我想要这个:
V1 V2 V3 MAX
0.4 -0.9 0.6 V2
0.8 -0.2 0.4 V1
-0.6 0.1 0.8 V3
有任何想法吗?
我们可以使用max.col
数据框的绝对值。
df$MAX <- names(df)[max.col(abs(df))]
df
# V1 V2 V3 MAX
#1 0.4 -0.9 0.6 V2
#2 0.8 -0.2 0.4 V1
#3 -0.6 0.1 0.8 V3
类似地,我们也可以apply
逐行使用解决方案来获取每一行的最大值
names(df)[apply(abs(df), 1, which.max)]
#[1] "V2" "V1" "V3"
数据
df <- structure(list(V1 = c(0.4, 0.8, -0.6), V2 = c(-0.9, -0.2, 0.1
), V3 = c(0.6, 0.4, 0.8)), class = "data.frame", row.names = c(NA,
-3L))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句