질문R에 범주 형 변수의 정렬 된 빈도 테이블을 가져 오는 간단한 한 줄 명령이 있습니까?
은 (예를 들어 참조, a generic data frame sorting question의 중복 표시되어 this question) R의 범주 형 변수의 정렬 된 주파수 테이블을 생성하는 방법을 이미 몇 번을 요청하고있다. 대답은 세 가지 연속적인 작업을 제안합니다 : 1. 주파수 테이블 생성, 2. 데이터 프레임으로 변환, 3. 정렬 (아래 예 참조).
이렇게 간단한 조작으로 인해 비교적 복잡합니다. 게다가, 의 데이터 프레임은 내가 찾고있는 정렬 된 주파수 테이블의 첫 번째 5 줄을 (해당 열의 경우) 제공합니다 (이 열의 다른 값의 수가 5보다 큰 경우).
예 "이름"에 대한 수천 개의 행과 수천 개의 다른 값을 가진 형태
example_df <- data.frame("Avg" = c(2558,2532,2503,2498,2491,2491,2477,2467,2460,2458,2445,2422), "Name" = c("Jun","Wang","Xi","Wang","Wang","Ma","Li","Ma","Xi","Lin","Yang","Zhao"))
하지만 더 이상의 데이터 프레임을 고려하십시오.
자주 사용하는 이름이 가장 많이 나오는 빈도 테이블을 추출하는 가장 쉬운 방법은 무엇입니까? 대부분 이름이 하나만있는 큰 테이블은 매우 유익하지 않기 때문에 유용합니다.
당신은
library(plyr)
example_ft<-as.data.frame(table(example_df$Name))
example_ft<-arrange(example_ft,desc(Freq),Var1)
이
example_ft<-as.data.frame(table(example_df$Name))
example_ft<-example_ft[order(-example_ft$Freq),]
또는
위의 링크 된 이전의 질문에 제안 된 솔루션입니다 할 수 있습니다. (행 번호가 다를 수 있지만) 의도 한대로 다음 example_ft에서 두 결과Var1 Freq
5 Wang 3
4 Ma 2
6 Xi 2
1 Jun 1
2 Li 1
3 Lin 1
7 Yang 1
8 Zhao 1
하지만 두 옵션은 오히려 복잡하게 보인다. 아마도 더 단순하고 직접적인 방법 일 것입니다.
summary(example_df)
출력 :이 약
Avg Name
Min. :2422 Wang :3
1st Qu.:2460 Ma :2
Median :2484 Xi :2
Mean :2484 Jun :1
3rd Qu.:2499 Li :1
Max. :2558 Lin :1
(Other):2
단지 ';'를 사용하면 모든 것을 한 줄에 넣을 수 있습니다. 즉 'x <-5; x'이다. – CCurtis