在 R 中,如何根据其他列的值从其他列的列标题创建新列

香提

我有一个如下的数据框:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章