当两个或多个时,也可以逐行在data.frame中查找唯一的最大值

时间:2018-10-24 10:26:32

标签: r dataframe find max rows

我有几个data.frames,必须在给定的列中找到最大值。有些data.frame具有唯一的最大值,而另一些具有两个或多个唯一的最大值。

如何打印具有此类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 :(得分:2)

选择频率与最大值相同的地方

df[~df.N1.isin(['N2'])]