我有一个数据框df
,如下所示:
col1 col2
aa 5
bb 6
cc 8
dd 2
ee 10
我想将输出作为数据框,其中包含df
的前3个值(前3个在第2列上计算),如下所示:
col1 col2
ee 10
cc 8
bb 6
答案 0 :(得分:3)
您可以在R中使用order
函数进行任何排序操作。例如在你的情况下
df <- df[order(df$col2,decreasing = TRUE),]
这将为您提供基于第二列的有序数据框。如果你想要前三名,那就是 选择前3行
df <- df[1:3,]
答案 1 :(得分:2)
head(df[rev(order(df$col2)),],3)
# col1 col2
# 5 ee 10
# 3 cc 8
# 2 bb 6
答案 2 :(得分:0)
另一种方法是使用dplyr
。
library(dplyr)
dat %>%
+ arrange(-col2) %>%
+ head(3)
col1 col2
1 ee 10
2 cc 8
3 bb 6