#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 См. обновленный ответ. Это то, чего ты хочешь?