我有几个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
感谢您的帮助
答案 0 :(得分:2)
选择频率与最大值相同的地方
df[~df.N1.isin(['N2'])]