Как найти 10 максимальных чисел со столбца
У меня есть 3 файла .csv с базой данных. В каждой из них есть по несколько столбцов. Я загрузил эти 3 файла в R studio:
Councontcode <- read.csv(file.choose(), header=TRUE)
hep <- read.csv(file.choose(), header=TRUE)
het <- read.csv(file.choose(), header=TRUE)
В базе данных hep есть столбец под названием TotalUSDPrize, в нем указаны 1000 разных чисел в виде призовых денег. Мне нужно найти 10 максимальных чисел с этого столбца, и связать их с нужным игроком получившим эти деньги. Столбец с игроками называется CurrentHandle. Связав эти 2 столбца, мне нужно вычислить 10 игроков у которых были самые большие призовые.
Остановился пока что на том, что смог вычислить только самую большую сумму со столбца TotalUSDPrize использовав команду:
max(hep$TotalUSDPrize)
Ответы (2 шт):
вот есть у нас таблица (вызов set.seed() тут исключительно для воспроизводимости случайной сортировки значений переменной приз):
set.seed(42)
таблица <- data.frame(приз=sample(100:104),игрок=letters[1:5],stringsAsFactors=F)
таблица
#> приз игрок
#> 1 104 a
#> 2 103 b
#> 3 100 c
#> 4 101 d
#> 5 102 e
выведем её содержимое, отсортировав по убыванию значений переменной приз:
таблица[order(таблица$приз,decreasing=T),]
#> приз игрок
#> 1 104 a
#> 2 103 b
#> 5 102 e
#> 4 101 d
#> 3 100 c
но из всей таблицы нам ведь нужны только значения переменной игрок:
таблица[order(таблица$приз,decreasing=T),]$игрок
#> [1] "a" "b" "e" "d" "c"
и даже не все значения, а, например, первые три:
таблица[order(таблица$приз,decreasing=T),]$игрок[1:3]
#> [1] "a" "b" "e"
ну, вот мы и вычислили игроков, получивших три максимальных приза.
Created on 2021-10-22 by the reprex package (v0.2.1)
Также можно воспользоваться функциями из библиотеки dplyr:
set.seed(2021)
library(dplyr)
table <- tibble(player = c("a", "b", "c", "d", "e"), win = sample(100:104))
table %>%
# отсортируем win по убыванию
arrange(desc(win)) %>%
# возьмем топ-3 значения
top_n(3)
# A tibble: 3 x 2
player win
<chr> <int>
1 c 104
2 d 103
3 b 102