R에서 그룹별 표준편차를 계산하는 방법(예제 포함)


다음 방법 중 하나를 사용하여 R에서 그룹별 표준 편차를 계산할 수 있습니다.

방법 1: R 베이스 사용

 aggregate(df$col_to_aggregate, list(df$col_to_group_by), FUN=sd)

방법 2: dplyr 사용

 library (dplyr)

df %>%
  group_by(col_to_group_by) %>%
  summarise_at(vars(col_to_aggregate), list(name=sd))

방법 3: data.table 사용

 library (data.table)

setDT(df)

dt[ ,list(sd=sd(col_to_aggregate)), by=col_to_group_by]

다음 예는 R의 다음 데이터 프레임에서 실제로 이러한 각 방법을 사용하는 방법을 보여줍니다.

 #create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 6 ),
                 points=c(8, 10, 12, 12, 14, 15, 10, 11, 12,
                          18, 22, 24, 3, 5, 5, 6, 7, 9))

#view data frame
df

   team points
1 to 8
2 to 10
3 to 12
4 to 12
5 to 14
6 to 15
7 B 10
8 B 11
9 B 12
10 B 18
11 B 22
12 B 24
13 C 3
14 C 5
15 C 5
16 C 6
17 C 7
18 C 9

방법 1: R 기준을 사용하여 그룹별 표준 편차 계산

다음 코드는 R 데이터베이스의 Aggregate() 함수를 사용하여 팀이 득점한 점수의 표준 편차를 계산하는 방법을 보여줍니다.

 #calculate standard deviation of points by team
aggregate(df$points, list(df$team), FUN=sd)

  Group.1 x
1 A 2.562551
2 B 6.013873
3 C 2.041241

방법 2: dplyr을 사용하여 그룹별 표준 편차 계산

다음 코드는 dplyr 패키지의 group_by ()summarise_at() 함수를 사용하여 팀이 득점한 점수의 표준 편차를 계산하는 방법을 보여줍니다.

 library (dplyr)

#calculate standard deviation of points scored by team
df %>%
  group_by(team) %>%
  summarise_at(vars(points), list(name=sd))

# A tibble: 3 x 2
  team name
   
1 to 2.56
2 B 6.01
3C 2.04

방법 3: data.table을 사용하여 그룹별 표준 편차 계산

다음 코드는 data.table 패키지의 함수를 사용하여 팀이 득점한 점수의 표준 편차를 계산하는 방법을 보여줍니다.

 library (data.table)

#convert data frame to data table 
setDT(df)

#calculate standard deviation of points scored by team
df[,list(sd=sd(points)), by=team]

   team sd
1: A 2.562551
2: B 6.013873
3:C2.041241

세 가지 방법 모두 동일한 결과를 반환합니다.

참고 : 매우 큰 데이터 프레임으로 작업하는 경우 dplyr 또는 data.table 접근 방식을 사용하는 것이 좋습니다. 이러한 패키지는 기본 R보다 훨씬 빠르게 작동하기 때문입니다.

추가 리소스

다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

R에서 그룹당 평균을 계산하는 방법
R에서 그룹별 합계를 계산하는 방법
R에서 그룹별로 분위수를 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다