2016-12-06 4 views
-2

У меня есть следующие данные:как отобразить имена столбцов грести минимальное значение

df 
    dc1 dc2 dc3 min_colname 
[1,] 12.9 13.4 13.4 
[2,] 6.1 6.5 6.5 
[3,] 6.3 6.7 6.7 
[4,] 21.0 21.4 21.4 
[5,] 1.6 1.8 1.8 
[6,] 3.3 3.7 3.7 
[7,] 7.0 7.4 7.4 
[8,] 3.2 3.6 3.6 
[9,] 14.8 15.2 15.2 
[10,] 7.9 8.3 8.3 

Я пытаюсь добавить еще один столбец сказать min_colname, который будет иметь минимальные значения каждой строки, но отображается на имя столбца. ... например, для минимального значения строки 1 является 12.9 ..so первый элемент в min_colname должен быть dc1, а не фактическое значение набл .....

+1

'colnames (df) [max.col (-df," first ")]' - довольно уверен, что это дубликат – thelatemail

+1

Возможный дубликат [для каждой строки, возвращает имя столбца наибольшего значения] (http: // stackoverflow.com/questions/17735859/for-each-row-return-the-column-name-of-the-largest-value) Или [R возвращает индекс минимального столбца для каждой строки] (http: // stackoverflow .com/questions/18324053/r-return-the-index-of-the-minimum-column-for-each-row) –

+0

Вы можете немного изменить ответы в этих ссылках, чтобы получить требуемый результат. –

ответ

0

Это должно работать:

df$min_colname <- apply(df, 1, function(x) colnames(df)[which.min(x)]) 
Смежные вопросы