Для моего задания у меня есть набор данных, состоящий из олимпийских участников. Мне нужно обобщить средний ИМТ для каждого Олимпийского спорта. Я заранее создал столбец BMI и получил следующий код:
olympics <- mutate(olympics, BMI = (Weight/(Height*Height)*10000))
answer6 <- olympics %>%
group_by(Sport, BMI, Sport) %>%
summarise()
Это оставляет мне таблицу с 13 000 строками. Это должна быть сводная таблица с 1 строкой для каждого вида спорта, а затем средний ИМТ для этого вида спорта.
После этого мне нужно сохранить 5 лучших средних значений этих стран в новом объекте в порядке убывания. Конечный результат будет выглядеть так:
Спорт Mean_BMI
Спорт1 19,5
Спорт2 19,2
Спорт3 19,1
Спорт4 18,6
Sport5 18,1
мои данные выглядят так:
structure(list(Name = c("A Lamusi", "Juhamatti Tapio Aaltonen",
"Andreea Aanei", "Jamale (Djamel-) Aarrass (Ahrass-)", "Nstor Abad Sanjun",
"Nstor Abad Sanjun"), Sex = c("M", "M", "F", "M", "M", "M"),
Age = c(23L, 28L, 22L, 30L, 23L, 23L), Height = c(170L, 184L,
170L, 187L, 167L, 167L), Weight = c(60, 85, 125, 76, 64,
64), Team = c("China", "Finland", "Romania", "France", "Spain",
"Spain"), NOC = c("CHN", "FIN", "ROU", "FRA", "ESP", "ESP"
), Games = c("2012 Summer", "2014 Winter", "2016 Summer",
"2012 Summer", "2016 Summer", "2016 Summer"), Year = c(2012L,
2014L, 2016L, 2012L, 2016L, 2016L), Season = c("Summer",
"Winter", "Summer", "Summer", "Summer", "Summer"), City = c("London",
"Sochi", "Rio de Janeiro", "London", "Rio de Janeiro", "Rio de Janeiro"
), Sport = c("Judo", "Ice Hockey", "Weightlifting", "Athletics",
"Gymnastics", "Gymnastics"), Event = c("Judo Men's Extra-Lightweight",
"Ice Hockey Men's Ice Hockey", "Weightlifting Women's Super-Heavyweight",
"Athletics Men's 1,500 metres", "Gymnastics Men's Individual All-Around",
"Gymnastics Men's Floor Exercise"), Medal = c(NA, "Bronze",
NA, NA, NA, NA), BMI = c(20.7612456747405, 25.1063327032136,
43.2525951557093, 21.7335354170837, 22.9481157445588, 22.9481157445588
), weightcategories = structure(c(3L, 6L, 10L, 5L, 4L, 4L
), .Label = c("31-40", "41-50", "51-60", "61-70", "71-80",
"81-90", "91-100", "101-110", "111-120", "121-130", "131-140",
"141-150", "151-160"), class = "factor")), .Names = c("Name",
"Sex", "Age", "Height", "Weight", "Team", "NOC", "Games", "Year",
"Season", "City", "Sport", "Event", "Medal", "BMI", "weightcategories"
), row.names = c(NA, 6L), class = "data.frame")