Найти уникальные максимальные значения в data.frame по строке также, когда два или более - PullRequest
0 голосов
/ 24 октября 2018

У меня есть несколько data.frames, и я должен найти максимальное значение для данного столбца.Некоторые data.frames имеют уникальное максимальное значение, но другие имеют два или более уникальных максимальных значения.

Как мне напечатать строки с максимальными значениями таких data.frames?

Некоторые поддельные данные:

#### Simple case with only one unique max value
df = data.frame(x = c(1,1,1,1,2,2,2,2,2), y = c(10, 10, 10, 10, 10, 10, 10, 9, 9))

df = data.frame(table(df$y))
df$Var1 = as.numeric(levels(df$Var1))[df$Var1]

max_val = df[which.max(df$Freq),]

print(max_val)
Var1 Freq
2   10    7

#### Unknown case with two unique max values
df_2 = data.frame(x = c(1,1,1,1,2,2,2,2,2), y = c(10, 10, 10, 9, 9, 9, 11, 11, 15))

df_2 = data.frame(table(df_2$y))
df_2$Var1 = as.numeric(levels(df_2$Var1))[df_2$Var1]

Желаемый вывод из df_2

  Var1 Freq
1    9    3
2   10    3

Спасибо за любую помощь

1 Ответ

0 голосов
/ 24 октября 2018

выберите, где частота равна максимальному

df_2[df_2$Freq == max(df_2$Freq),]

#  Var1 Freq
#1    9    3
#2   10    3
...