2016-07-07 1 views
0

res1 데이터 세트의 연령대별로 구별되는 회원 수를 얻기 위해이 작업을 실행했습니다. 그러나 카운트는 그룹화되지 않고 아래에 표시된 개수는 전체 데이터 세트에 대한 것입니다. 내가 어디로 잘못 가고 있는지 모르겠습니다. 누군가 이걸로 나를 도울 수 있습니까? 고맙습니다! 당신이 배관 연산자 %>%를 사용하는 경우dplyr을 사용하여 R에서 데이터를 그룹화하는 데 문제가 있습니다.

res1 %>% group_by(Age_Group = res1[,'age_group']) %>% 
     summarise(Count = n_distinct(res1[,'ID'])) 
Source: local data frame [10 x 2] 

# Age_Group    Count 
#  <fctr>    <int> 
#1  >= 90   5000 
#2  0-9   5000 
#3  10-19   5000 
#4  20-29   5000 
#5  30-39   5000 
#6  40-49   5000 
#7  50-59   5000 
#8  60-69   5000 
#9  70-79   5000 
#10  80-89   5000 
+0

를 사용하여 작동합니다'RES1 %> % GROUP_BY (AGE_GROUP) %> % 요약한다 (카운트 = n_distinct (ID))'. 후속 dplyr 단계에서 원래 데이터 프레임을 참조하지 마십시오. 그것은 사슬을 끊어 버린다. 따옴표로 묶지 않은 열 이름을 사용하십시오. – MrFlick

+0

@MrFlick 정말 고마워요. – NM24

답변

1

IT는 연산자의 오른쪽에있는 기능에 대한 첫 번째 입력으로 연산자의 왼쪽에 무엇을 공급한다. group_by 문을 summarize 문으로 파이프하면 숨겨진 이름없는 그룹화 된 데이터 프레임이 나타납니다. 그러나 Countn_distinct(res1[,'ID'])으로 정의하면 원래 그룹화되지 않은 data.frame res1으로 다시 호출되며 group_by 호출에서 생성 한 그룹화 된 data.frame은 호출되지 않습니다. 그것이 그룹당 카운트가 아닌 총 카운트를 제공하는 이유입니다. 방금 인용되지 않은 열 이름을 호출해야이 같은 dplyr 파이프 라인에서

, 그래서 이것은 :

res1 %>% group_by(Age_Group = age_group) %>% 
summarise(Count = n_distinct(ID)) 

+0

고마워요! 그건 의미가 있습니다. – NM24

+0

답이 귀하의 질문에 답하고 귀하의 문제를 해결 한 경우 대답을 수락하여이를 나타낼 수 있습니다 (위아래 화살표 아래의 확인 표시). –

관련 문제