Как выбрать столбец в соответствии с максимальным значением строки

#r #database #dataframe #tidyverse #reshape

Вопрос:

Мне нужна помощь с проблемой извлечения данных. У меня есть фрейм данных, и мне нужно построить другой фрейм в соответствии с первым:

Данные

Я хотел бы иметь в своем новом наборе данных 3 столбца. В первом должны быть значения с 2000 по 2020 год для этих лиц (столбцов) с максимальными значениями в строке «средства». Во втором столбце должно быть что-то, что я пишу в каждой строке, а в третьем столбце должно быть название этого столбца, выбранного ранее в качестве столбца с максимальным средним значением. Тогда результат должен выглядеть так для данного случая:

изображение

Было бы здорово, если бы вы могли мне помочь.

Заранее спасибо.

Ответ №1:

Вы можете использовать —

 library(dplyr)

res <- cmk %>%
  transmute(Industrials, 
            category = row_number(), 
            subcategory = 'Industrials')
res

#   Industrials category subcategory
#1     1.263835        1 Industrials
#2     1.264464        2 Industrials
#3     1.305693        3 Industrials
#4     1.313662        4 Industrials
#5     1.336979        5 Industrials
#6     1.279066        6 Industrials
#7     1.205527        7 Industrials
#8     1.161275        8 Industrials
#...
#...
 

Комментарии:

1. Спасибо, Ронак. Однако код работает не так, как хотелось бы, потому что я хотел бы, чтобы в первом столбце (значение) были выбраны значения одного столбца cmk из-за наличия максимального значения в строке «среднее». В этом случае я должен получить значения для столбца «промышленные предприятия», а в третьем столбце должны быть только промышленные предприятия, как показано на графике вопроса.

2. @LMLP См. обновленный ответ. Это то, чего ты хочешь?