我有几个项目的集群数据,这些项目也有与之关联的排名.群集和排名数据框如下所示:
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循环来做这个,但必须有一个更好的方法.建议表示赞赏.
你可以做:
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中也可以采用相同的方法.