Добро пожаловать в Stack Overflow. В следующий раз попробуйте включить образцы данных. Это помогает нам помочь вам. Это решение с использованием пакета dplyr
. Это часть tidyverse
диалекта R
. Если вы только изучаете R
, установите пакет пакетов Tidyverse. Это будет ваш лучший друг.
data <- data.frame(points = c(10, 12, 12, 4),
games = c(2, 3, 2, 1),
dude = c("a", "b", "c", "d"))
library(dplyr)
theDude <- data %>% #start with the data above and pipe it to the next line
mutate(pointsPerGame = points/games) %>% # create the average variable and pipe to next line
filter(pointsPerGame == max(pointsPerGame)) %>% # keep only the record(s) with the largest average and pipe to the next line
select(dude) # keep the person's name
Если это поможет, нажмите зеленую галочку, чтобы указать, что вы настроены. Если нет, попросите разъяснений по поводу непонятного.