2014-02-25 3 views
0

3 개의 열이있는 다음과 같은 데이터 프레임이 있다고 가정 해 봅니다.행 주파수의 개수가

data = data.frame(id=c(1:10), interest_1=c("food","","","drugs","beer","soda","","","drugs","sports"), 
        interest_2=c("fruits","car","jeans","","","","soda","shoes","","drugs"), 
        interest_3=c("","","","","soda","sports","","","","")) 

data 

각 행의 수를 계산하고 싶습니다.

음식은 interest_1, 과일은 interest_2, 관심 없음 _3은 한 번만 발생합니다.

id interest_1 interest_2 interest_3 
1 1  food  fruits 

약물이 interest_1이고 아무 것도 interest_2 또는 interest_3이 두 번 나타나는 다음과 같은 경우입니다.

id interest_1 interest_2 interest_3 
    4  drugs      
    9  drugs 

각 발생이 발생하는 횟수를 계산하고 싶습니다. 이 일을 어떻게 하죠?

interest_1 interest_2 interest_3 count 
    food  fruits     1 
         car   1 
       jeans     1 
    drugs       2 

답변

6
> aggregate(id~.,data,length) 
    interest_1 interest_2 interest_3 id 
1  drugs      2 
2     car    1 
3  sports  drugs    1 
4  food  fruits    1 
5     jeans    1 
6     shoes    1 
7     soda    1 
8  beer     soda 1 
9  soda    sports 1 

기본적 이것이 의미 : 다른 열 조합마다 id 값 이루어진 벡터로하는 기능을 적용 length 같은

출력 찾아야한다.

2
require(plyr) 
ddply(data, .(interest_1, interest_2, interest_3), c("nrow")) 
+0

오 와우, 그건 분명했습니다. 감사! – amathew

+0

NP! 내가 도울 수있어서 기쁩니다. – stanekam

관련 문제