如何在数据框中抓取双排列的第一个实例?

Ern*_*nie 2 sorting r

我有几个项目的集群数据,这些项目也有与之关联的排名.群集和排名数据框如下所示:

   clus   rank
A    1    1
B    1    3
C    1    5
D    2    4
E    2    6
F    3    9
G    3    8
H    3    7
Run Code Online (Sandbox Code Playgroud)

我想只获取每个集群中的第一个名称和排名,但只获取每个集群中的单个项目,以便我得到:

A    1
D    4
F    9
Run Code Online (Sandbox Code Playgroud)

我可以用一些for循环来做这个,但必须有一个更好的方法.建议表示赞赏.

tal*_*lat 5

你可以做:

df[!duplicated(df$clus), "rank", drop = FALSE]
#  rank
#A    1
#D    4
#F    9
Run Code Online (Sandbox Code Playgroud)

或者df[!duplicated(df$clus),]如果你想保留所有列.

当然,在dplyr和data.table中也可以采用相同的方法.