В R, как создать новый столбец из заголовков столбцов других столбцов на основе их значений - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть следующий кадр данных:

Type    Prob_A prob_B  prob_C
Vinyl    .57    .43       0
Wood     .2     .4       .4
Ceramic  .12    .80      .08

Мне нужно создать новый столбец с именем Status. Проверьте вероятности и получите заголовок максимального значения и назовите его A, B или C. В моем активе реальных данных у меня есть 10 столбцов, которые мне нужно сравнить.

1 Ответ

0 голосов
/ 04 ноября 2019

Мы можем использовать max.col, чтобы получить индекс столбца первых max значений и выбрать подстроку имен столбцов

df1$Status <- substring(names(df1)[-1], 
          nchar(names(df1)[-1]))[max.col(df1[-1], 'first')]
df1$Status
#[1] "A" "B" "B"

data

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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...