Набор данных Fifa2 Во-первых, я не разработчик, и у меня мало опыта работы с R, поэтому, пожалуйста, прости меня. Я пытался сделать это самостоятельно, но у меня не осталось идей для фильтрации фрейма данных с помощью команды filter.
фрейм данных содержит около дюжины столбцов, один из которых - Grp (имеется в виду группа). Это набор данных ФИФА по футболу, поэтому под Группой в этом контексте подразумевается общая позиция игрока (защита, полузащитник, вратарь, нападающий).
Мне нужно отфильтровать этот фрейм данных, чтобы предоставить мне точную информацию:
4 лучших игрока обороны
Лучшие 4 игрока полузащиты
2 лучших нападающих
Топ 1 Вратарь
Что я подразумеваю под "вершиной"? Это организовано столбцом Grp, который является просто числовым числом. Итак, Top 4 будет выглядеть как 22,21,21,20 (или что-то похожее, потому что это числовое число может фактически повторяться для разных игроков). Столбец «Рост» представляет собой разницу между столбцом «Потенциальный столбец» и «Общий столбец», поэтому снова просто вычтите, чтобы найти разницу между ними.
#Create a subset of the data frame
library(dplyr)
fifa2 <- fifa %>% select(Club,Name,Position,Overall,Potential,Contract.Valid.Until2,Wage2,Value2,Release.Clause2,Grp) %>% arrange(Club)
#Add columns for determining potential
fifa2$Growth <- fifa2$Potential - fifa2$Overall
head(fifa2)
#Find Southampton Players
ClubName <- filter(fifa2, Club == "Southampton") %>%
group_by(Grp) %>% arrange(desc(Growth), .by_group=TRUE) %>%
top_n(4)
ClubName
ClubName2 <- ggplot(ClubName, aes(x=forcats::fct_reorder(Name, Grp),
y=Growth, fill = Grp)) +
geom_bar(stat = "identity", colour = "black") +
coord_flip() + xlab("Player Names") + ylab("Unfilled Growth Potential") +
ggtitle("Southampton Players, Grouped by Position")
ClubName2
На этом графике представлен список игроков, в которых по 4 лучших игрока находятся в каждой позиции (top_n (4)), но мне нужно отфильтровать их по логике, описанной выше. Как мне этого добиться? Я попытался дурачиться с помощью dplyr, и довольно просто получить строки по имени Grp, но не вижу, как их отфильтровать до нужного мне 4-4-2-1. Любая помощь приветствуется.
Пример вывода из fifa2 & ClubName (который показывает данные, отсортированные по top_n (4):
fifa2_Dataset