我有一个如下的数据框:
Type Prob_A prob_B prob_C
Vinyl .57 .43 0
Wood .2 .4 .4
Ceramic .12 .80 .08
我需要创建一个名为 Status 的新列。检查概率并获取最大值的标题并将其称为 A、B 或 C。在我的真实数据资产中,我需要比较 10 列。
我们可以使用max.col
获取第一个max
值的列索引并选择列名的子字符串
df1$Status <- substring(names(df1)[-1],
nchar(names(df1)[-1]))[max.col(df1[-1], 'first')]
df1$Status
#[1] "A" "B" "B"
df1 <- structure(list(Type = c("Vinyl", "Wood", "Ceramic"), Prob_A = c(0.57,
0.2, 0.12), prob_B = c(0.43, 0.4, 0.8), prob_C = c(0, 0.4, 0.08
)), class = "data.frame", row.names = c(NA, -3L))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句