Development Tip

그룹 별 요약 통계를 얻는 방법

yourdevel 2020. 12. 13. 11:15
반응형

그룹 별 요약 통계를 얻는 방법


한 번에 범주 열별로 그룹화 된 R / S-PLUS에서 여러 요약 통계를 얻으려고합니다. 몇 가지 함수를 찾았지만 모두`aggregate ()와 같이 호출 당 하나의 통계를 수행합니다.

data <- c(62, 60, 63, 59, 63, 67, 71, 64, 65, 66, 68, 66, 
          71, 67, 68, 68, 56, 62, 60, 61, 63, 64, 63, 59)
grp <- factor(rep(LETTERS[1:4], c(4,6,6,8)))
df <- data.frame(group=grp, dt=data)
mg <- aggregate(df$dt, by=df$group, FUN=mean)    
mg <- aggregate(df$dt, by=df$group, FUN=sum)    

내가 찾고있는 것은 평균, 최소, 최대, 표준, ... 등과 같은 동일한 그룹에 대한 여러 통계를 한 번의 호출로 얻는 것입니다.


2 센트를 tapply().

tapply(df$dt, df$group, summary)

요약을 대체하려는 특정 통계로 사용자 지정 함수를 작성할 수 있습니다.


dplyr 패키지는이 문제에 대한 좋은 대안이 될 수 있습니다.

library(dplyr)

df %>% 
  group_by(group) %>% 
  summarize(mean = mean(dt),
            sum = sum(dt))

1 사분면과 3 사분면을 얻으려면

df %>% 
  group_by(group) %>% 
  summarize(q1 = quantile(dt, 0.25),
            q3 = quantile(dt, 0.75))

Hadley Wickham의 purrr 패키지를 사용하면 매우 간단합니다. 사용하여 split전달 분할 data_frame사용 후, 그룹으로를 map적용 할 summary각 그룹에 기능을.

library(purrr)

df %>% split(.$group) %>% map(summary)

이 이것에 대해 이동하는 방법에는 여러 가지가 있어요,하지만 난에 부분 해요 describeBypsych패키지 :

describeBy(df$dt, df$group, mat = TRUE) 

plyr패키지를 보세요 . 구체적으로 특별히,ddply

ddply(df, .(group), summarise, mean=mean(dt), sum=sum(dt))

게다가 describeBydoBy패키지는 다른 옵션입니다. SAS PROC SUMMARY의 많은 기능을 제공합니다. 세부 정보 : http://www.statmethods.net/stats/descriptives.html


5 년이 지난 후에도이 답변에 대해 많은 관심을받지 못할 것이라고 확신합니다. 그러나 여전히 모든 옵션을 완성하기 위해 data.table

library(data.table)
setDT(df)[ , list(mean_gr = mean(dt), sum_gr = sum(dt)) , by = .(group)]
#   group mean_gr sum_gr
#1:     A      61    244
#2:     B      66    396
#3:     C      68    408
#4:     D      61    488 

다른 접근 방식 중 일부는 작동하지만 이것은 당신이하던 것과 매우 유사하며 base r 만 사용합니다. 집계 명령을 알고 있다면 더 직관적 일 수 있습니다.

with( df , aggregate( dt , by=list(group) , FUN=summary)  )

첫째, R 버전에 따라 다릅니다. 2.11을 통과 한 경우 여러 결과 함수 (요약, 인스턴스 또는 자체 함수)와 함께 집계를 사용할 수 있습니다. 그렇지 않은 경우 Justin의 답변을 사용할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/9847054/how-to-get-summary-statistics-by-group

반응형