У меня есть такой фрейм данных:
country = c("Austria", "Austria","Austria","Austria", "Brazil", "Brazil", "Brazil", "Brazil", "USA", "USA", "USA", "USA",
"Austria", "Austria","Austria","Austria", "Brazil", "Brazil", "Brazil", "Brazil", "USA", "USA", "USA", "USA")
tech = c("cars", "cars","cars","cars","cars","cars","cars","cars","cars","cars","cars","cars","planes","planes","planes",
"planes","planes","planes","planes","planes","planes","planes","planes","planes")
year = c(2010, 2011, 2012, 2013, 2010, 2011, 2012, 2013, 2010, 2011, 2012, 2013,2010, 2011, 2012, 2013, 2010, 2011, 2012,
2013, 2010, 2011, 2012, 2013)
value = c(42, 23, 13, 13, 646,454, 23, 234, 12, 123, 1, 23, 23, 54, 2, 77, 584, 66, 767, 6767, 23, 12, 12, 99)
df = data.frame(tech, country, year, value)
Мне нужен новый столбец, в котором у меня есть ранжирование для стран по годам в рамках каждой технологии с использованием значений.
Итак, в 2013 году для самолетов я хочу сказать, что «США» заняла 1-е место (имело наибольшее значение для этого года и технологий).
Я знаю, как ранжироваться в одной группе, например, если у меня не было технологий, и Я хотел бы ранжировать по стране и году, я бы сделал:
df = df %>%
group_by(year) %>%
arrange(country) %>%
mutate(`whatever` = order(order(value, decreasing = TRUE)))
Тем не менее, я поставлен в тупик, как добавить технологию в смесь, то есть ранжировать по технологии для каждого года для стран.
Кто-нибудь есть руководство?