2016-08-19 3 views
-2

특정 형식의 데이터 프레임을 가져 오려고합니다. user_id, movie_id, movie_ranking의 3 가지 속성이 있습니다. 최대 순위에 따라 각 사용자에 대해 최고의 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

위대한 작품! 고마워요! –

관련 문제