cyl
으로 정렬하기 전에 데이터를 ungroup()
해야하기 때문에 작동하지 않습니다. 사용중인 코드가 cyl
으로 그룹화되어있는 동안 cyl
열을 주문하려고합니다. 이러한 값은 (그룹 내에서) 모두 동일하기 때문에 아무 것도 변경되지 않습니다.
순위를 매기고 cyl
전체 데이터를 정렬하려면 그룹화를 먼저 제거한 다음 arrange()
을 다시 실행할 수 있습니다.
library(dplyr)
group_by(mtcars, cyl) %>% ## group by cylinder
mutate(rank = row_number(mpg)) %>% ## rank by mpg
filter(rank <= 3) %>% ## top three for each cyl
arrange(rank) %>% ## arrange each group by rank
ungroup() %>% ## remove grouping
arrange(desc(cyl)) ## arrange all by cylinder (descending)
# mpg cyl disp hp drat wt qsec vs am gear carb rank
# 1 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4 1
# 2 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4 2
# 3 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4 3
# 4 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4 1
# 5 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1 2
# 6 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4 3
# 7 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2 1
# 8 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1 2
# 9 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 3
는 보조 노트로서, 나는 당신이 그것을 상당히
<-
로 만든 할당을 줄일 것으로 함께 이러한 호출 체인의
%>%
기능을 사용하여 고려하는 것이 좋습니다 것입니다.
비슷한 게시물 http://stackoverflow.com/questions/26555297/dplyr-arrange-a-grouped-df-by-group-variable-not-working – hshihab