假设我有一个数据框
Group Pos Score
A V 82
A V 72
A W 95
A W 92
A W 65
A W 61
A X 82
A X 80
A X 70
B V 88
B V 77
B W 95
B W 91
B W 85
B W 71
B X 88
B X 83
B X 78
...
#this data frame has groups with values C, D, E, etc also
假设我想保留每个Group
和每个Pos
的最高分数。例如,假设我想保留Score
的前1 Pos=V
,Score
的前3 Pos=W
和Score
的前2 Pos=X
{1}}
所以我希望数据框看起来像
Group Pos Score
A V 82
A W 95
A W 92
A W 65
A X 82
A X 80
B V 88
B W 95
B W 91
B W 85
B X 88
B X 83
我怎样才能在R?
中这样做答案 0 :(得分:1)
我们可以尝试
v1 <- unique(df1$Pos)
Map(function(x,y)
filter(df1, Pos==x) %>%
group_by(Group) %>%
top_n(y, wt = Score), v1, c(1, 3, 2)) %>%
bind_rows()