2016-08-19 68 views
-2

我想要以特定格式获取数据帧。 我有3个属性user_id,movie_id,movie_ranking。 我想根据最高排名显示每个用户的最佳movie_id和排名。如何计算每个用户的最大值并添加其他属性

我想dplyr库对此很有帮助,但我无法真正理解它的工作原理。

+1

提供[再现的示例](http://stackoverflow.com/questions/5963269)和显示一些编码工作。 – zx8754

+0

@DavidLexa如果以下解决方案适用于您,请考虑通过单击投票旁边的勾号接受解决方案。 – akrun

回答

-2

使用dplyr,我们可以按照'user_id',arrange'movie_ranking'以降序排列,slice第一行。

library(dplyr) 
df1 %>% 
    group_by(user_id) %>% 
    arrange(desc(movie_ranking)) %>% 
    slice(1L) 

一种不太有效的选择将使用which.max

df1 %>% 
    group_by(user_id) %>% 
    slice(which.max(movie_ranking)) 
+1

太棒了!感谢akrun! –

相关问题