mutate 파생 함수의 활용
tidyverse
생태계에서 사용자를 매료시키는 기능은 뭐니뭐니해도 dplyr
를 사용한 데이터 전처리의 편리함일 것이다. dplyr
에서 제공하는 각종 데이터 전처리 함수들은 SQL 언어를 사용하던 유저들은 바로 활용이 가능할 정도로 사용이 쉽다. SQL을 모르는 유저도 매우 쉽게 배우고 사용할 수 있다는 점에서 python에서도 dplyr
를 유사하게 흉내 낸 패키지까지 등장할 정도로 사용이 쉽다.
dplyr
에서 제공하는 데이터 전처리 함수들 중에 새로운 데이터 열을 만들어내는 함수가 mutate()
함수이다. 대부분의 R 입문서에서도 mutate()
를 다루고 있지만 mutate()
에서 파생된 함수들까지 다루는 입문서는 찾아보기 어렵다. 여기서는 mutate()
의 파생 함수들의 사용법을 알아보겠다.
mutate()
는 변수 역할을 하는 새로운 열을 만들어 내는 함수이다. 하지만 하나의 열을 만들어내는데 하나의 산식이 필요하다. 만약 10개의 열을 만들어야 한다면 mutate()
안에 10개의 열에 대한 수식을 나열해야 한다. 이렇게 많은 열을 만들어야 하는 경우를 위해 dplyr
에서는 몇 개의 추가적 함수를 제공한다.
데이터 import
mutate()
파생 함수의 활용 방법을 알아보기 위해 열이 많은 데이터를 가져오도록 하겠다. 사용할 데이터는 ’주요-07 (유초)행정구역별 연령별 학생수(1999-2021)_220524y.xlsx’로 교육통계 서비스 홈페이지의 시도별 행정구별 연령별 학생수 에서 다운로드 받았다.
df_mutate <- read_xlsx('D:/R/data/주요-07 (유초)행정구역별 연령별 학생수(1999-2021)_220524y.xlsx', sheet = 'Sheet1',
skip = 3, col_names = T, col_type = c(rep('text', 4), rep('numeric', 63)))
colnames(df_mutate) <- c('연도', '시도', '행정구역', '학제', '전체', '남자', '여자', paste0(rep(c('전체', '남자', '여자'), 20), '_', rep(2:21, each = 3), '세'))
glimpse(df_mutate)
## Rows: 41,985
## Columns: 67
## $ 연도 <chr> "1999", "1999", "1999", "1999", "1999", "1999", "1999", "1999"~
## $ 시도 <chr> "서울", "서울", "서울", "서울", "서울", "서울", "서울", "서울"~
## $ 행정구역 <chr> "종로구", "종로구", "종로구", "종로구", "종로구", "종로구", "종~
## $ 학제 <chr> "유치원", "초등학교", "중학교", "고등학교", "(일반계고)", "(전~
## $ 전체 <dbl> 1535, 11182, 6219, 24832, 19389, 5443, 605, 480, 44853, 1211, ~
## $ 남자 <dbl> 817, 5909, 3722, 12762, 9683, 3079, 375, 399, 23984, 643, 5848~
## $ 여자 <dbl> 718, 5273, 2497, 12070, 9706, 2364, 230, 81, 20869, 568, 5281,~
## $ 전체_2세 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ~
## $ 남자_2세 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ~
## $ 여자_2세 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ~
## $ 전체_3세 <dbl> 325, 0, 0, 0, 0, 0, 18, 0, 343, 141, 0, 0, 0, 0, 0, 0, 0, 141, ~
## $ 남자_3세 <dbl> 176, 0, 0, 0, 0, 0, 9, 0, 185, 80, 0, 0, 0, 0, 0, 0, 0, 80, 178~
## $ 여자_3세 <dbl> 149, 0, 0, 0, 0, 0, 9, 0, 158, 61, 0, 0, 0, 0, 0, 0, 0, 61, 176~
## $ 전체_4세 <dbl> 566, 0, 0, 0, 0, 0, 28, 0, 594, 456, 0, 0, 0, 0, 0, 0, 0, 456, ~
## $ 남자_4세 <dbl> 290, 0, 0, 0, 0, 0, 22, 0, 312, 246, 0, 0, 0, 0, 0, 0, 0, 246, ~
## $ 여자_4세 <dbl> 276, 0, 0, 0, 0, 0, 6, 0, 282, 210, 0, 0, 0, 0, 0, 0, 0, 210, 3~
## $ 전체_5세 <dbl> 644, 61, 0, 0, 0, 0, 43, 0, 748, 614, 60, 0, 0, 0, 0, 0, 0, 674~
## $ 남자_5세 <dbl> 351, 23, 0, 0, 0, 0, 28, 0, 402, 317, 22, 0, 0, 0, 0, 0, 0, 339~
## $ 여자_5세 <dbl> 293, 38, 0, 0, 0, 0, 15, 0, 346, 297, 38, 0, 0, 0, 0, 0, 0, 335~
## $ 전체_6세 <dbl> 0, 1817, 0, 0, 0, 0, 22, 0, 1839, 0, 1956, 0, 0, 0, 0, 0, 0, 19~
## $ 남자_6세 <dbl> 0, 964, 0, 0, 0, 0, 11, 0, 975, 0, 1014, 0, 0, 0, 0, 0, 0, 1014~
## $ 여자_6세 <dbl> 0, 853, 0, 0, 0, 0, 11, 0, 864, 0, 942, 0, 0, 0, 0, 0, 0, 942, ~
## $ 전체_7세 <dbl> 0, 1978, 0, 0, 0, 0, 10, 0, 1988, 0, 1990, 0, 0, 0, 0, 0, 0, 19~
## $ 남자_7세 <dbl> 0, 1042, 0, 0, 0, 0, 5, 0, 1047, 0, 1038, 0, 0, 0, 0, 0, 0, 103~
## $ 여자_7세 <dbl> 0, 936, 0, 0, 0, 0, 5, 0, 941, 0, 952, 0, 0, 0, 0, 0, 0, 952, 0~
## $ 전체_8세 <dbl> 0, 1833, 0, 0, 0, 0, 24, 0, 1857, 0, 1826, 0, 0, 0, 0, 0, 0, 18~
## $ 남자_8세 <dbl> 0, 951, 0, 0, 0, 0, 14, 0, 965, 0, 965, 0, 0, 0, 0, 0, 0, 965, ~
## $ 여자_8세 <dbl> 0, 882, 0, 0, 0, 0, 10, 0, 892, 0, 861, 0, 0, 0, 0, 0, 0, 861, ~
## $ 전체_9세 <dbl> 0, 1703, 0, 0, 0, 0, 20, 0, 1723, 0, 1750, 0, 0, 0, 0, 0, 0, 17~
## $ 남자_9세 <dbl> 0, 907, 0, 0, 0, 0, 11, 0, 918, 0, 954, 0, 0, 0, 0, 0, 0, 954, ~
## $ 여자_9세 <dbl> 0, 796, 0, 0, 0, 0, 9, 0, 805, 0, 796, 0, 0, 0, 0, 0, 0, 796, 0~
## $ 전체_10세 <dbl> 0, 1785, 0, 0, 0, 0, 19, 0, 1804, 0, 1688, 0, 0, 0, 0, 0, 0, 16~
## $ 남자_10세 <dbl> 0, 961, 0, 0, 0, 0, 9, 0, 970, 0, 894, 0, 0, 0, 0, 0, 0, 894, 0~
## $ 여자_10세 <dbl> 0, 824, 0, 0, 0, 0, 10, 0, 834, 0, 794, 0, 0, 0, 0, 0, 0, 794, ~
## $ 전체_11세 <dbl> 0, 1814, 47, 0, 0, 0, 22, 0, 1883, 0, 1756, 18, 0, 0, 0, 0, 0, ~
## $ 남자_11세 <dbl> 0, 955, 13, 0, 0, 0, 14, 0, 982, 0, 910, 7, 0, 0, 0, 0, 0, 917,~
## $ 여자_11세 <dbl> 0, 859, 34, 0, 0, 0, 8, 0, 901, 0, 846, 11, 0, 0, 0, 0, 0, 857,~
## $ 전체_12세 <dbl> 0, 187, 1885, 0, 0, 0, 22, 0, 2094, 0, 101, 1860, 0, 0, 0, 0, 2~
## $ 남자_12세 <dbl> 0, 104, 1157, 0, 0, 0, 11, 0, 1272, 0, 49, 854, 0, 0, 0, 0, 33,~
## $ 여자_12세 <dbl> 0, 83, 728, 0, 0, 0, 11, 0, 822, 0, 52, 1006, 0, 0, 0, 0, 243, ~
## $ 전체_13세 <dbl> 0, 4, 2092, 1, 1, 0, 27, 0, 2124, 0, 2, 2044, 0, 0, 0, 0, 299, ~
## $ 남자_13세 <dbl> 0, 2, 1243, 0, 0, 0, 17, 0, 1262, 0, 2, 866, 0, 0, 0, 0, 27, 89~
## $ 여자_13세 <dbl> 0, 2, 849, 1, 1, 0, 10, 0, 862, 0, 0, 1178, 0, 0, 0, 0, 272, 14~
## $ 전체_14세 <dbl> 0, 0, 2131, 218, 167, 51, 33, 0, 2382, 0, 0, 2124, 55, 42, 13, ~
## $ 남자_14세 <dbl> 0, 0, 1270, 109, 80, 29, 21, 0, 1400, 0, 0, 968, 35, 23, 12, 0,~
## $ 여자_14세 <dbl> 0, 0, 861, 109, 87, 22, 12, 0, 982, 0, 0, 1156, 20, 19, 1, 0, 2~
## $ 전체_15세 <dbl> 0, 0, 58, 7342, 6219, 1123, 32, 0, 7432, 0, 0, 61, 5428, 3037, ~
## $ 남자_15세 <dbl> 0, 0, 34, 3939, 3152, 787, 20, 0, 3993, 0, 0, 22, 3140, 1284, 1~
## $ 여자_15세 <dbl> 0, 0, 24, 3403, 3067, 336, 12, 0, 3439, 0, 0, 39, 2288, 1753, 5~
## $ 전체_16세 <dbl> 0, 0, 5, 8169, 6447, 1722, 59, 60, 8293, 0, 0, 2, 7953, 3498, 4~
## $ 남자_16세 <dbl> 0, 0, 4, 4162, 3149, 1013, 28, 48, 4242, 0, 0, 0, 5416, 1639, 3~
## $ 여자_16세 <dbl> 0, 0, 1, 4007, 3298, 709, 31, 12, 4051, 0, 0, 2, 2537, 1859, 67~
## $ 전체_17세 <dbl> 0, 0, 1, 7991, 6187, 1804, 42, 420, 8454, 0, 0, 1, 8073, 3640, ~
## $ 남자_17세 <dbl> 0, 0, 1, 4210, 3005, 1205, 25, 351, 4587, 0, 0, 1, 5002, 1866, ~
## $ 여자_17세 <dbl> 0, 0, 0, 3781, 3182, 599, 17, 69, 3867, 0, 0, 0, 3071, 1774, 12~
## $ 전체_18세 <dbl> 0, 0, 0, 1061, 350, 711, 51, 0, 1112, 0, 0, 0, 1375, 669, 706, ~
## $ 남자_18세 <dbl> 0, 0, 0, 322, 282, 40, 33, 0, 355, 0, 0, 0, 1286, 640, 646, 18,~
## $ 여자_18세 <dbl> 0, 0, 0, 739, 68, 671, 18, 0, 757, 0, 0, 0, 89, 29, 60, 44, 0, ~
## $ 전체_19세 <dbl> 0, 0, 0, 50, 18, 32, 33, 0, 83, 0, 0, 0, 163, 86, 77, 38, 0, 20~
## $ 남자_19세 <dbl> 0, 0, 0, 20, 15, 5, 18, 0, 38, 0, 0, 0, 158, 84, 74, 8, 0, 166,~
## $ 여자_19세 <dbl> 0, 0, 0, 30, 3, 27, 15, 0, 45, 0, 0, 0, 5, 2, 3, 30, 0, 35, 0, ~
## $ 전체_20세 <dbl> 0, 0, 0, 0, 0, 0, 42, 0, 42, 0, 0, 0, 11, 1, 10, 49, 0, 60, 0, ~
## $ 남자_20세 <dbl> 0, 0, 0, 0, 0, 0, 28, 0, 28, 0, 0, 0, 11, 1, 10, 5, 0, 16, 0, 0~
## $ 여자_20세 <dbl> 0, 0, 0, 0, 0, 0, 14, 0, 14, 0, 0, 0, 0, 0, 0, 44, 0, 44, 0, 0,~
## $ 전체_21세 <dbl> 0, 0, 0, 0, 0, 0, 58, 0, 58, 0, 0, 0, 2, 2, 0, 286, 0, 288, 0, ~
## $ 남자_21세 <dbl> 0, 0, 0, 0, 0, 0, 51, 0, 51, 0, 0, 0, 2, 2, 0, 59, 0, 61, 0, 0,~
## $ 여자_21세 <dbl> 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 0, 0, 0, 0, 0, 227, 0, 227, 0, 0,~
이 데이터는 열의 수가 총 67개인 데이터이다. 위의 데이터 구조를 보면 알겠지만 각 열은 연령별 전체 학생수, 남자, 여자 학생수를 나타내는데 5번부터 7번째열은 전체 합계에 해당하는 열이다. 이 데이터를 전체에 대한 비율로 바꾸어 보겠다.
전체에 대한 비율로 바꾸려면 전체 합계에 해당하는 수치로 각 연령별 학생수를 나누어 주어야 한다. 만약 단순히 mutate()
를 사용해야 한다면 2세부터 21세까지의 전체, 남자, 여자에 해당하는 총 60개의 수식을 나열해야 한다. 이럴경우 대부분 ctrl+c ctrl+v를 사용하여 60개를 복사하고 연령을 나타내는 수를 바꾸어주는 형태로 60개의 수식을 만들것이다. 이러한 작업을 해 본 사람이라면 이 작업이 얼마나 많은 오류를 만들어 낼 수 있는지 알 것이다. 이런 경우에 사용하는 mutate()
파생 함수는 다음과 같다.
mutate_all
mutate_all()
은 전체 열에 대해 동일한 수식을 적용하는 함수이다. mutate_all()
에는 모든 열에 적용할 함수를 명기해야 한다. 단순히 평균이나 합계를 내는 경우에는 ‘mean’, ’sum’과 같은 함수명을 매개변수로 전달하면 된다. 하지만 이 mutate_all()
을 ’df_mutate’에 적용시키면 다음과 같은 결과를 낸다. .
df_mutate_all <- df_mutate |> mutate_all(mean)
df_mutate_all |> head(10)
## # A tibble: 10 x 67
## 연도 시도 행정구역 학제 전체 남자 여자 전체_2세 남자_2세 여자_2세
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 NA NA NA NA 9227. 4835. 4392. 0.260 0.137 0.123
## 2 NA NA NA NA 9227. 4835. 4392. 0.260 0.137 0.123
## 3 NA NA NA NA 9227. 4835. 4392. 0.260 0.137 0.123
## 4 NA NA NA NA 9227. 4835. 4392. 0.260 0.137 0.123
## 5 NA NA NA NA 9227. 4835. 4392. 0.260 0.137 0.123
## 6 NA NA NA NA 9227. 4835. 4392. 0.260 0.137 0.123
## 7 NA NA NA NA 9227. 4835. 4392. 0.260 0.137 0.123
## 8 NA NA NA NA 9227. 4835. 4392. 0.260 0.137 0.123
## 9 NA NA NA NA 9227. 4835. 4392. 0.260 0.137 0.123
## 10 NA NA NA NA 9227. 4835. 4392. 0.260 0.137 0.123
## # ... with 57 more variables: 전체_3세 <dbl>, 남자_3세 <dbl>, 여자_3세 <dbl>,
## # 전체_4세 <dbl>, 남자_4세 <dbl>, 여자_4세 <dbl>, 전체_5세 <dbl>,
## # 남자_5세 <dbl>, 여자_5세 <dbl>, 전체_6세 <dbl>, 남자_6세 <dbl>,
## # 여자_6세 <dbl>, 전체_7세 <dbl>, 남자_7세 <dbl>, 여자_7세 <dbl>,
## # 전체_8세 <dbl>, 남자_8세 <dbl>, 여자_8세 <dbl>, 전체_9세 <dbl>,
## # 남자_9세 <dbl>, 여자_9세 <dbl>, 전체_10세 <dbl>, 남자_10세 <dbl>,
## # 여자_10세 <dbl>, 전체_11세 <dbl>, 남자_11세 <dbl>, 여자_11세 <dbl>, ...
위의 결과에서 보면 두 가지 이상한 점이 있다. 첫번째는 연도, 시도 등 문자열을 포함한 열은 NA로 채워져 있고 계산된 수치열은 열별로 모든 행이 같은 값을 가진다는 것이다. 첫 번째 문제는 문자열에 대해서는 평균을 구할수 없기 때문에 발생한 문제이다. 두 번째 문제는 mutate_all()
의 적용 함수인 ’mean’은 열 방향으로 적용되는 함수이기 때문에 같은 열의 모든 행은 같은 값을 가지게 된다는 것이다.
첫 번째 문제는 다음과 같은 방법으로 해결할 수 있다.
df_mutate_all <- cbind(df_mutate |> select(1:4),
df_mutate |> select(-(1:4)) |> mutate_all(mean)
)
df_mutate_all |> head(10)
## 연도 시도 행정구역 학제 전체 남자 여자 전체_2세 남자_2세
## 1 1999 서울 종로구 유치원 9226.664 4834.613 4392.05 0.25995 0.1365726
## 2 1999 서울 종로구 초등학교 9226.664 4834.613 4392.05 0.25995 0.1365726
## 3 1999 서울 종로구 중학교 9226.664 4834.613 4392.05 0.25995 0.1365726
## 4 1999 서울 종로구 고등학교 9226.664 4834.613 4392.05 0.25995 0.1365726
## 5 1999 서울 종로구 (일반계고) 9226.664 4834.613 4392.05 0.25995 0.1365726
## 6 1999 서울 종로구 (전문계고) 9226.664 4834.613 4392.05 0.25995 0.1365726
## 7 1999 서울 종로구 특수학교 9226.664 4834.613 4392.05 0.25995 0.1365726
## 8 1999 서울 종로구 각종학교 9226.664 4834.613 4392.05 0.25995 0.1365726
## 9 1999 서울 종로구 소계 9226.664 4834.613 4392.05 0.25995 0.1365726
## 10 1999 서울 중구 유치원 9226.664 4834.613 4392.05 0.25995 0.1365726
## 여자_2세 전체_3세 남자_3세 여자_3세 전체_4세 남자_4세 여자_4세 전체_5세
## 1 0.1233774 126.878 64.8937 61.98433 220.7301 113.9353 106.7948 302.8342
## 2 0.1233774 126.878 64.8937 61.98433 220.7301 113.9353 106.7948 302.8342
## 3 0.1233774 126.878 64.8937 61.98433 220.7301 113.9353 106.7948 302.8342
## 4 0.1233774 126.878 64.8937 61.98433 220.7301 113.9353 106.7948 302.8342
## 5 0.1233774 126.878 64.8937 61.98433 220.7301 113.9353 106.7948 302.8342
## 6 0.1233774 126.878 64.8937 61.98433 220.7301 113.9353 106.7948 302.8342
## 7 0.1233774 126.878 64.8937 61.98433 220.7301 113.9353 106.7948 302.8342
## 8 0.1233774 126.878 64.8937 61.98433 220.7301 113.9353 106.7948 302.8342
## 9 0.1233774 126.878 64.8937 61.98433 220.7301 113.9353 106.7948 302.8342
## 10 0.1233774 126.878 64.8937 61.98433 220.7301 113.9353 106.7948 302.8342
## 남자_5세 여자_5세 전체_6세 남자_6세 여자_6세 전체_7세 남자_7세 여자_7세
## 1 156.8314 146.0027 558.2328 290.3588 267.874 600.4627 313.7101 286.7526
## 2 156.8314 146.0027 558.2328 290.3588 267.874 600.4627 313.7101 286.7526
## 3 156.8314 146.0027 558.2328 290.3588 267.874 600.4627 313.7101 286.7526
## 4 156.8314 146.0027 558.2328 290.3588 267.874 600.4627 313.7101 286.7526
## 5 156.8314 146.0027 558.2328 290.3588 267.874 600.4627 313.7101 286.7526
## 6 156.8314 146.0027 558.2328 290.3588 267.874 600.4627 313.7101 286.7526
## 7 156.8314 146.0027 558.2328 290.3588 267.874 600.4627 313.7101 286.7526
## 8 156.8314 146.0027 558.2328 290.3588 267.874 600.4627 313.7101 286.7526
## 9 156.8314 146.0027 558.2328 290.3588 267.874 600.4627 313.7101 286.7526
## 10 156.8314 146.0027 558.2328 290.3588 267.874 600.4627 313.7101 286.7526
## 전체_8세 남자_8세 여자_8세 전체_9세 남자_9세 여자_9세 전체_10세 남자_10세
## 1 610.6971 319.4187 291.2783 618.1809 323.8107 294.3702 623.8971 327.0914
## 2 610.6971 319.4187 291.2783 618.1809 323.8107 294.3702 623.8971 327.0914
## 3 610.6971 319.4187 291.2783 618.1809 323.8107 294.3702 623.8971 327.0914
## 4 610.6971 319.4187 291.2783 618.1809 323.8107 294.3702 623.8971 327.0914
## 5 610.6971 319.4187 291.2783 618.1809 323.8107 294.3702 623.8971 327.0914
## 6 610.6971 319.4187 291.2783 618.1809 323.8107 294.3702 623.8971 327.0914
## 7 610.6971 319.4187 291.2783 618.1809 323.8107 294.3702 623.8971 327.0914
## 8 610.6971 319.4187 291.2783 618.1809 323.8107 294.3702 623.8971 327.0914
## 9 610.6971 319.4187 291.2783 618.1809 323.8107 294.3702 623.8971 327.0914
## 10 610.6971 319.4187 291.2783 618.1809 323.8107 294.3702 623.8971 327.0914
## 여자_10세 전체_11세 남자_11세 여자_11세 전체_12세 남자_12세 여자_12세
## 1 296.8057 630.2469 330.5552 299.6917 631.8402 331.1976 300.6426
## 2 296.8057 630.2469 330.5552 299.6917 631.8402 331.1976 300.6426
## 3 296.8057 630.2469 330.5552 299.6917 631.8402 331.1976 300.6426
## 4 296.8057 630.2469 330.5552 299.6917 631.8402 331.1976 300.6426
## 5 296.8057 630.2469 330.5552 299.6917 631.8402 331.1976 300.6426
## 6 296.8057 630.2469 330.5552 299.6917 631.8402 331.1976 300.6426
## 7 296.8057 630.2469 330.5552 299.6917 631.8402 331.1976 300.6426
## 8 296.8057 630.2469 330.5552 299.6917 631.8402 331.1976 300.6426
## 9 296.8057 630.2469 330.5552 299.6917 631.8402 331.1976 300.6426
## 10 296.8057 630.2469 330.5552 299.6917 631.8402 331.1976 300.6426
## 전체_13세 남자_13세 여자_13세 전체_14세 남자_14세 여자_14세 전체_15세
## 1 643.5511 337.4947 306.0564 654.8126 343.7299 311.0827 939.2604
## 2 643.5511 337.4947 306.0564 654.8126 343.7299 311.0827 939.2604
## 3 643.5511 337.4947 306.0564 654.8126 343.7299 311.0827 939.2604
## 4 643.5511 337.4947 306.0564 654.8126 343.7299 311.0827 939.2604
## 5 643.5511 337.4947 306.0564 654.8126 343.7299 311.0827 939.2604
## 6 643.5511 337.4947 306.0564 654.8126 343.7299 311.0827 939.2604
## 7 643.5511 337.4947 306.0564 654.8126 343.7299 311.0827 939.2604
## 8 643.5511 337.4947 306.0564 654.8126 343.7299 311.0827 939.2604
## 9 643.5511 337.4947 306.0564 654.8126 343.7299 311.0827 939.2604
## 10 643.5511 337.4947 306.0564 654.8126 343.7299 311.0827 939.2604
## 남자_15세 여자_15세 전체_16세 남자_16세 여자_16세 전체_17세 남자_17세
## 1 493.3877 445.8727 978.2483 513.9566 464.2917 973.5292 511.3996
## 2 493.3877 445.8727 978.2483 513.9566 464.2917 973.5292 511.3996
## 3 493.3877 445.8727 978.2483 513.9566 464.2917 973.5292 511.3996
## 4 493.3877 445.8727 978.2483 513.9566 464.2917 973.5292 511.3996
## 5 493.3877 445.8727 978.2483 513.9566 464.2917 973.5292 511.3996
## 6 493.3877 445.8727 978.2483 513.9566 464.2917 973.5292 511.3996
## 7 493.3877 445.8727 978.2483 513.9566 464.2917 973.5292 511.3996
## 8 493.3877 445.8727 978.2483 513.9566 464.2917 973.5292 511.3996
## 9 493.3877 445.8727 978.2483 513.9566 464.2917 973.5292 511.3996
## 10 493.3877 445.8727 978.2483 513.9566 464.2917 973.5292 511.3996
## 여자_17세 전체_18세 남자_18세 여자_18세 전체_19세 남자_19세 여자_19세
## 1 462.1295 96.61331 53.69965 42.91366 11.1969 6.325926 4.870978
## 2 462.1295 96.61331 53.69965 42.91366 11.1969 6.325926 4.870978
## 3 462.1295 96.61331 53.69965 42.91366 11.1969 6.325926 4.870978
## 4 462.1295 96.61331 53.69965 42.91366 11.1969 6.325926 4.870978
## 5 462.1295 96.61331 53.69965 42.91366 11.1969 6.325926 4.870978
## 6 462.1295 96.61331 53.69965 42.91366 11.1969 6.325926 4.870978
## 7 462.1295 96.61331 53.69965 42.91366 11.1969 6.325926 4.870978
## 8 462.1295 96.61331 53.69965 42.91366 11.1969 6.325926 4.870978
## 9 462.1295 96.61331 53.69965 42.91366 11.1969 6.325926 4.870978
## 10 462.1295 96.61331 53.69965 42.91366 11.1969 6.325926 4.870978
## 전체_20세 남자_20세 여자_20세 전체_21세 남자_21세 여자_21세
## 1 1.604811 0.9820888 0.6227224 3.587114 1.697535 1.88958
## 2 1.604811 0.9820888 0.6227224 3.587114 1.697535 1.88958
## 3 1.604811 0.9820888 0.6227224 3.587114 1.697535 1.88958
## 4 1.604811 0.9820888 0.6227224 3.587114 1.697535 1.88958
## 5 1.604811 0.9820888 0.6227224 3.587114 1.697535 1.88958
## 6 1.604811 0.9820888 0.6227224 3.587114 1.697535 1.88958
## 7 1.604811 0.9820888 0.6227224 3.587114 1.697535 1.88958
## 8 1.604811 0.9820888 0.6227224 3.587114 1.697535 1.88958
## 9 1.604811 0.9820888 0.6227224 3.587114 1.697535 1.88958
## 10 1.604811 0.9820888 0.6227224 3.587114 1.697535 1.88958
이제 두 번째 문제를 해결해 보자. 앞서 언급한 바와 같이 여기서는 각각의 연령에 해당하는 학생수를 전체로 나누어 비율을 구하는 함수를 만들어야 한다. 여기서는 ’전체’에 대해 데이터를 만드는 방법을 사용한다.
df_mutate_all <- cbind(df_mutate |> select(1:4),
df_mutate |> select(-(1:4)) |>
select(starts_with('전체')) |>
mutate_all(list(비율 = ~round(./전체, 3)))
)
df_mutate_all |> select(ends_with('비율')) |>
head(10)
## 전체_비율 전체_2세_비율 전체_3세_비율 전체_4세_비율 전체_5세_비율
## 1 1 0 0.212 0.369 0.420
## 2 1 0 0.000 0.000 0.005
## 3 1 0 0.000 0.000 0.000
## 4 1 0 0.000 0.000 0.000
## 5 1 0 0.000 0.000 0.000
## 6 1 0 0.000 0.000 0.000
## 7 1 0 0.030 0.046 0.071
## 8 1 0 0.000 0.000 0.000
## 9 1 0 0.008 0.013 0.017
## 10 1 0 0.116 0.377 0.507
## 전체_6세_비율 전체_7세_비율 전체_8세_비율 전체_9세_비율 전체_10세_비율
## 1 0.000 0.000 0.000 0.000 0.000
## 2 0.162 0.177 0.164 0.152 0.160
## 3 0.000 0.000 0.000 0.000 0.000
## 4 0.000 0.000 0.000 0.000 0.000
## 5 0.000 0.000 0.000 0.000 0.000
## 6 0.000 0.000 0.000 0.000 0.000
## 7 0.036 0.017 0.040 0.033 0.031
## 8 0.000 0.000 0.000 0.000 0.000
## 9 0.041 0.044 0.041 0.038 0.040
## 10 0.000 0.000 0.000 0.000 0.000
## 전체_11세_비율 전체_12세_비율 전체_13세_비율 전체_14세_비율 전체_15세_비율
## 1 0.000 0.000 0.000 0.000 0.000
## 2 0.162 0.017 0.000 0.000 0.000
## 3 0.008 0.303 0.336 0.343 0.009
## 4 0.000 0.000 0.000 0.009 0.296
## 5 0.000 0.000 0.000 0.009 0.321
## 6 0.000 0.000 0.000 0.009 0.206
## 7 0.036 0.036 0.045 0.055 0.053
## 8 0.000 0.000 0.000 0.000 0.000
## 9 0.042 0.047 0.047 0.053 0.166
## 10 0.000 0.000 0.000 0.000 0.000
## 전체_16세_비율 전체_17세_비율 전체_18세_비율 전체_19세_비율 전체_20세_비율
## 1 0.000 0.000 0.000 0.000 0.000
## 2 0.000 0.000 0.000 0.000 0.000
## 3 0.001 0.000 0.000 0.000 0.000
## 4 0.329 0.322 0.043 0.002 0.000
## 5 0.333 0.319 0.018 0.001 0.000
## 6 0.316 0.331 0.131 0.006 0.000
## 7 0.098 0.069 0.084 0.055 0.069
## 8 0.125 0.875 0.000 0.000 0.000
## 9 0.185 0.188 0.025 0.002 0.001
## 10 0.000 0.000 0.000 0.000 0.000
## 전체_21세_비율
## 1 0.000
## 2 0.000
## 3 0.000
## 4 0.000
## 5 0.000
## 6 0.000
## 7 0.096
## 8 0.000
## 9 0.001
## 10 0.000
df_mutate_all |> glimpse()
## Rows: 41,985
## Columns: 46
## $ 연도 <chr> "1999", "1999", "1999", "1999", "1999", "1999", "1999", "~
## $ 시도 <chr> "서울", "서울", "서울", "서울", "서울", "서울", "서울", "~
## $ 행정구역 <chr> "종로구", "종로구", "종로구", "종로구", "종로구", "종로구",~
## $ 학제 <chr> "유치원", "초등학교", "중학교", "고등학교", "(일반계고)",~
## $ 전체 <dbl> 1535, 11182, 6219, 24832, 19389, 5443, 605, 480, 44853, 1~
## $ 전체_2세 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0~
## $ 전체_3세 <dbl> 325, 0, 0, 0, 0, 0, 18, 0, 343, 141, 0, 0, 0, 0, 0, 0, 0, ~
## $ 전체_4세 <dbl> 566, 0, 0, 0, 0, 0, 28, 0, 594, 456, 0, 0, 0, 0, 0, 0, 0, ~
## $ 전체_5세 <dbl> 644, 61, 0, 0, 0, 0, 43, 0, 748, 614, 60, 0, 0, 0, 0, 0, 0~
## $ 전체_6세 <dbl> 0, 1817, 0, 0, 0, 0, 22, 0, 1839, 0, 1956, 0, 0, 0, 0, 0, ~
## $ 전체_7세 <dbl> 0, 1978, 0, 0, 0, 0, 10, 0, 1988, 0, 1990, 0, 0, 0, 0, 0, ~
## $ 전체_8세 <dbl> 0, 1833, 0, 0, 0, 0, 24, 0, 1857, 0, 1826, 0, 0, 0, 0, 0, ~
## $ 전체_9세 <dbl> 0, 1703, 0, 0, 0, 0, 20, 0, 1723, 0, 1750, 0, 0, 0, 0, 0, ~
## $ 전체_10세 <dbl> 0, 1785, 0, 0, 0, 0, 19, 0, 1804, 0, 1688, 0, 0, 0, 0, 0, ~
## $ 전체_11세 <dbl> 0, 1814, 47, 0, 0, 0, 22, 0, 1883, 0, 1756, 18, 0, 0, 0, 0~
## $ 전체_12세 <dbl> 0, 187, 1885, 0, 0, 0, 22, 0, 2094, 0, 101, 1860, 0, 0, 0,~
## $ 전체_13세 <dbl> 0, 4, 2092, 1, 1, 0, 27, 0, 2124, 0, 2, 2044, 0, 0, 0, 0, ~
## $ 전체_14세 <dbl> 0, 0, 2131, 218, 167, 51, 33, 0, 2382, 0, 0, 2124, 55, 42,~
## $ 전체_15세 <dbl> 0, 0, 58, 7342, 6219, 1123, 32, 0, 7432, 0, 0, 61, 5428, 3~
## $ 전체_16세 <dbl> 0, 0, 5, 8169, 6447, 1722, 59, 60, 8293, 0, 0, 2, 7953, 34~
## $ 전체_17세 <dbl> 0, 0, 1, 7991, 6187, 1804, 42, 420, 8454, 0, 0, 1, 8073, 3~
## $ 전체_18세 <dbl> 0, 0, 0, 1061, 350, 711, 51, 0, 1112, 0, 0, 0, 1375, 669, ~
## $ 전체_19세 <dbl> 0, 0, 0, 50, 18, 32, 33, 0, 83, 0, 0, 0, 163, 86, 77, 38, ~
## $ 전체_20세 <dbl> 0, 0, 0, 0, 0, 0, 42, 0, 42, 0, 0, 0, 11, 1, 10, 49, 0, 60~
## $ 전체_21세 <dbl> 0, 0, 0, 0, 0, 0, 58, 0, 58, 0, 0, 0, 2, 2, 0, 286, 0, 288~
## $ 전체_비율 <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,~
## $ 전체_2세_비율 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ~
## $ 전체_3세_비율 <dbl> 0.212, 0.000, 0.000, 0.000, 0.000, 0.000, 0.030, 0.000, 0.00~
## $ 전체_4세_비율 <dbl> 0.369, 0.000, 0.000, 0.000, 0.000, 0.000, 0.046, 0.000, 0.01~
## $ 전체_5세_비율 <dbl> 0.420, 0.005, 0.000, 0.000, 0.000, 0.000, 0.071, 0.000, 0.01~
## $ 전체_6세_비율 <dbl> 0.000, 0.162, 0.000, 0.000, 0.000, 0.000, 0.036, 0.000, 0.04~
## $ 전체_7세_비율 <dbl> 0.000, 0.177, 0.000, 0.000, 0.000, 0.000, 0.017, 0.000, 0.04~
## $ 전체_8세_비율 <dbl> 0.000, 0.164, 0.000, 0.000, 0.000, 0.000, 0.040, 0.000, 0.04~
## $ 전체_9세_비율 <dbl> 0.000, 0.152, 0.000, 0.000, 0.000, 0.000, 0.033, 0.000, 0.03~
## $ 전체_10세_비율 <dbl> 0.000, 0.160, 0.000, 0.000, 0.000, 0.000, 0.031, 0.000, 0.04~
## $ 전체_11세_비율 <dbl> 0.000, 0.162, 0.008, 0.000, 0.000, 0.000, 0.036, 0.000, 0.04~
## $ 전체_12세_비율 <dbl> 0.000, 0.017, 0.303, 0.000, 0.000, 0.000, 0.036, 0.000, 0.04~
## $ 전체_13세_비율 <dbl> 0.000, 0.000, 0.336, 0.000, 0.000, 0.000, 0.045, 0.000, 0.04~
## $ 전체_14세_비율 <dbl> 0.000, 0.000, 0.343, 0.009, 0.009, 0.009, 0.055, 0.000, 0.05~
## $ 전체_15세_비율 <dbl> 0.000, 0.000, 0.009, 0.296, 0.321, 0.206, 0.053, 0.000, 0.16~
## $ 전체_16세_비율 <dbl> 0.000, 0.000, 0.001, 0.329, 0.333, 0.316, 0.098, 0.125, 0.18~
## $ 전체_17세_비율 <dbl> 0.000, 0.000, 0.000, 0.322, 0.319, 0.331, 0.069, 0.875, 0.18~
## $ 전체_18세_비율 <dbl> 0.000, 0.000, 0.000, 0.043, 0.018, 0.131, 0.084, 0.000, 0.02~
## $ 전체_19세_비율 <dbl> 0.000, 0.000, 0.000, 0.002, 0.001, 0.006, 0.055, 0.000, 0.00~
## $ 전체_20세_비율 <dbl> 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.069, 0.000, 0.00~
## $ 전체_21세_비율 <dbl> 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.096, 0.000, 0.00~
muate_all()
에 list()
를 사용하여 함수를 만들었다. 이전에는 funs()
를 사용하여 함수를 만들었지만 dplyr
에서는 funs()
를 폐기할 예정으로 list()
를 사용할 것을 권고하고 있다. list()
로 새로 만들어질 열 이름과 계산될 수식을 ~
를 붙여 넣어주면 ~
로 묶여진 수식을 함수로 인식하여 계산되는데 .
은 자신의 열을 의미한다. 따라서 비율 = ~round(./전체, 3)
은 ‘비율’이라는 열을 만드는데 ’각각의 열(.
)을 ’전체’ 열로 나누고 소수점 3자리에서 반올림하는 함수’를 의미한다. 이렇게 계산된 값들은 ’비율’이라는 접미어가 붙은 열로 생성되어 저장된다.
mutate_at
앞선 mutate_all()
은 전체 열에 대해 같은 함수를 적용하기 때문에 전체, 남자, 여자를 구분하여 적용할 수 없어서 전체에 해당하는 열만 계산하였다. 하지만 전체, 남자, 여자에 해당하는 열에 각각 적용하려면 어떻게 해야하는가? 이럴때 사용하는 함수가 mutate_at()
이다.
mutate_at()
은 문자열 벡터나 vars()
에 선택된 열에 해당하는 열에 한하여 설정된 함수를 적용하는 함수이다. 앞서의 경우에는 열 이름이 ‘전체’, ‘남자’, ’여자’로 시작하는 열을 따로 따로 적용해야하기 때문에 muate_at()
을 사용해야 한다.
df_mutate_at <- df_mutate |>
mutate_at(vars(starts_with('전체')), list(비율 = ~round(./전체, 3))) |>
mutate_at(vars(starts_with('남자')), list(비율 = ~round(./남자, 3))) |>
mutate_at(vars(starts_with('여자')), list(비율 = ~round(./여자, 3)))
df_mutate_at |> select(ends_with('비율')) |>
head(10)
## # A tibble: 10 x 63
## 전체_비율 전체_2세_비율 전체_3세_비율 전체_4세_비율 전체_5세_비율
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 0 0.212 0.369 0.42
## 2 1 0 0 0 0.005
## 3 1 0 0 0 0
## 4 1 0 0 0 0
## 5 1 0 0 0 0
## 6 1 0 0 0 0
## 7 1 0 0.03 0.046 0.071
## 8 1 0 0 0 0
## 9 1 0 0.008 0.013 0.017
## 10 1 0 0.116 0.377 0.507
## # ... with 58 more variables: 전체_6세_비율 <dbl>, 전체_7세_비율 <dbl>,
## # 전체_8세_비율 <dbl>, 전체_9세_비율 <dbl>, 전체_10세_비율 <dbl>,
## # 전체_11세_비율 <dbl>, 전체_12세_비율 <dbl>, 전체_13세_비율 <dbl>,
## # 전체_14세_비율 <dbl>, 전체_15세_비율 <dbl>, 전체_16세_비율 <dbl>,
## # 전체_17세_비율 <dbl>, 전체_18세_비율 <dbl>, 전체_19세_비율 <dbl>,
## # 전체_20세_비율 <dbl>, 전체_21세_비율 <dbl>, 남자_비율 <dbl>,
## # 남자_2세_비율 <dbl>, 남자_3세_비율 <dbl>, 남자_4세_비율 <dbl>, ...
df_mutate_at |> glimpse()
## Rows: 41,985
## Columns: 130
## $ 연도 <chr> "1999", "1999", "1999", "1999", "1999", "1999", "1999", "~
## $ 시도 <chr> "서울", "서울", "서울", "서울", "서울", "서울", "서울", "~
## $ 행정구역 <chr> "종로구", "종로구", "종로구", "종로구", "종로구", "종로구",~
## $ 학제 <chr> "유치원", "초등학교", "중학교", "고등학교", "(일반계고)",~
## $ 전체 <dbl> 1535, 11182, 6219, 24832, 19389, 5443, 605, 480, 44853, 1~
## $ 남자 <dbl> 817, 5909, 3722, 12762, 9683, 3079, 375, 399, 23984, 643,~
## $ 여자 <dbl> 718, 5273, 2497, 12070, 9706, 2364, 230, 81, 20869, 568, ~
## $ 전체_2세 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0~
## $ 남자_2세 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0~
## $ 여자_2세 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0~
## $ 전체_3세 <dbl> 325, 0, 0, 0, 0, 0, 18, 0, 343, 141, 0, 0, 0, 0, 0, 0, 0, ~
## $ 남자_3세 <dbl> 176, 0, 0, 0, 0, 0, 9, 0, 185, 80, 0, 0, 0, 0, 0, 0, 0, 80~
## $ 여자_3세 <dbl> 149, 0, 0, 0, 0, 0, 9, 0, 158, 61, 0, 0, 0, 0, 0, 0, 0, 61~
## $ 전체_4세 <dbl> 566, 0, 0, 0, 0, 0, 28, 0, 594, 456, 0, 0, 0, 0, 0, 0, 0, ~
## $ 남자_4세 <dbl> 290, 0, 0, 0, 0, 0, 22, 0, 312, 246, 0, 0, 0, 0, 0, 0, 0, ~
## $ 여자_4세 <dbl> 276, 0, 0, 0, 0, 0, 6, 0, 282, 210, 0, 0, 0, 0, 0, 0, 0, 2~
## $ 전체_5세 <dbl> 644, 61, 0, 0, 0, 0, 43, 0, 748, 614, 60, 0, 0, 0, 0, 0, 0~
## $ 남자_5세 <dbl> 351, 23, 0, 0, 0, 0, 28, 0, 402, 317, 22, 0, 0, 0, 0, 0, 0~
## $ 여자_5세 <dbl> 293, 38, 0, 0, 0, 0, 15, 0, 346, 297, 38, 0, 0, 0, 0, 0, 0~
## $ 전체_6세 <dbl> 0, 1817, 0, 0, 0, 0, 22, 0, 1839, 0, 1956, 0, 0, 0, 0, 0, ~
## $ 남자_6세 <dbl> 0, 964, 0, 0, 0, 0, 11, 0, 975, 0, 1014, 0, 0, 0, 0, 0, 0,~
## $ 여자_6세 <dbl> 0, 853, 0, 0, 0, 0, 11, 0, 864, 0, 942, 0, 0, 0, 0, 0, 0, ~
## $ 전체_7세 <dbl> 0, 1978, 0, 0, 0, 0, 10, 0, 1988, 0, 1990, 0, 0, 0, 0, 0, ~
## $ 남자_7세 <dbl> 0, 1042, 0, 0, 0, 0, 5, 0, 1047, 0, 1038, 0, 0, 0, 0, 0, 0~
## $ 여자_7세 <dbl> 0, 936, 0, 0, 0, 0, 5, 0, 941, 0, 952, 0, 0, 0, 0, 0, 0, 9~
## $ 전체_8세 <dbl> 0, 1833, 0, 0, 0, 0, 24, 0, 1857, 0, 1826, 0, 0, 0, 0, 0, ~
## $ 남자_8세 <dbl> 0, 951, 0, 0, 0, 0, 14, 0, 965, 0, 965, 0, 0, 0, 0, 0, 0, ~
## $ 여자_8세 <dbl> 0, 882, 0, 0, 0, 0, 10, 0, 892, 0, 861, 0, 0, 0, 0, 0, 0, ~
## $ 전체_9세 <dbl> 0, 1703, 0, 0, 0, 0, 20, 0, 1723, 0, 1750, 0, 0, 0, 0, 0, ~
## $ 남자_9세 <dbl> 0, 907, 0, 0, 0, 0, 11, 0, 918, 0, 954, 0, 0, 0, 0, 0, 0, ~
## $ 여자_9세 <dbl> 0, 796, 0, 0, 0, 0, 9, 0, 805, 0, 796, 0, 0, 0, 0, 0, 0, 7~
## $ 전체_10세 <dbl> 0, 1785, 0, 0, 0, 0, 19, 0, 1804, 0, 1688, 0, 0, 0, 0, 0, ~
## $ 남자_10세 <dbl> 0, 961, 0, 0, 0, 0, 9, 0, 970, 0, 894, 0, 0, 0, 0, 0, 0, 8~
## $ 여자_10세 <dbl> 0, 824, 0, 0, 0, 0, 10, 0, 834, 0, 794, 0, 0, 0, 0, 0, 0, ~
## $ 전체_11세 <dbl> 0, 1814, 47, 0, 0, 0, 22, 0, 1883, 0, 1756, 18, 0, 0, 0, 0~
## $ 남자_11세 <dbl> 0, 955, 13, 0, 0, 0, 14, 0, 982, 0, 910, 7, 0, 0, 0, 0, 0,~
## $ 여자_11세 <dbl> 0, 859, 34, 0, 0, 0, 8, 0, 901, 0, 846, 11, 0, 0, 0, 0, 0,~
## $ 전체_12세 <dbl> 0, 187, 1885, 0, 0, 0, 22, 0, 2094, 0, 101, 1860, 0, 0, 0,~
## $ 남자_12세 <dbl> 0, 104, 1157, 0, 0, 0, 11, 0, 1272, 0, 49, 854, 0, 0, 0, 0~
## $ 여자_12세 <dbl> 0, 83, 728, 0, 0, 0, 11, 0, 822, 0, 52, 1006, 0, 0, 0, 0, ~
## $ 전체_13세 <dbl> 0, 4, 2092, 1, 1, 0, 27, 0, 2124, 0, 2, 2044, 0, 0, 0, 0, ~
## $ 남자_13세 <dbl> 0, 2, 1243, 0, 0, 0, 17, 0, 1262, 0, 2, 866, 0, 0, 0, 0, 2~
## $ 여자_13세 <dbl> 0, 2, 849, 1, 1, 0, 10, 0, 862, 0, 0, 1178, 0, 0, 0, 0, 27~
## $ 전체_14세 <dbl> 0, 0, 2131, 218, 167, 51, 33, 0, 2382, 0, 0, 2124, 55, 42,~
## $ 남자_14세 <dbl> 0, 0, 1270, 109, 80, 29, 21, 0, 1400, 0, 0, 968, 35, 23, 1~
## $ 여자_14세 <dbl> 0, 0, 861, 109, 87, 22, 12, 0, 982, 0, 0, 1156, 20, 19, 1,~
## $ 전체_15세 <dbl> 0, 0, 58, 7342, 6219, 1123, 32, 0, 7432, 0, 0, 61, 5428, 3~
## $ 남자_15세 <dbl> 0, 0, 34, 3939, 3152, 787, 20, 0, 3993, 0, 0, 22, 3140, 12~
## $ 여자_15세 <dbl> 0, 0, 24, 3403, 3067, 336, 12, 0, 3439, 0, 0, 39, 2288, 17~
## $ 전체_16세 <dbl> 0, 0, 5, 8169, 6447, 1722, 59, 60, 8293, 0, 0, 2, 7953, 34~
## $ 남자_16세 <dbl> 0, 0, 4, 4162, 3149, 1013, 28, 48, 4242, 0, 0, 0, 5416, 16~
## $ 여자_16세 <dbl> 0, 0, 1, 4007, 3298, 709, 31, 12, 4051, 0, 0, 2, 2537, 185~
## $ 전체_17세 <dbl> 0, 0, 1, 7991, 6187, 1804, 42, 420, 8454, 0, 0, 1, 8073, 3~
## $ 남자_17세 <dbl> 0, 0, 1, 4210, 3005, 1205, 25, 351, 4587, 0, 0, 1, 5002, 1~
## $ 여자_17세 <dbl> 0, 0, 0, 3781, 3182, 599, 17, 69, 3867, 0, 0, 0, 3071, 177~
## $ 전체_18세 <dbl> 0, 0, 0, 1061, 350, 711, 51, 0, 1112, 0, 0, 0, 1375, 669, ~
## $ 남자_18세 <dbl> 0, 0, 0, 322, 282, 40, 33, 0, 355, 0, 0, 0, 1286, 640, 646~
## $ 여자_18세 <dbl> 0, 0, 0, 739, 68, 671, 18, 0, 757, 0, 0, 0, 89, 29, 60, 44~
## $ 전체_19세 <dbl> 0, 0, 0, 50, 18, 32, 33, 0, 83, 0, 0, 0, 163, 86, 77, 38, ~
## $ 남자_19세 <dbl> 0, 0, 0, 20, 15, 5, 18, 0, 38, 0, 0, 0, 158, 84, 74, 8, 0,~
## $ 여자_19세 <dbl> 0, 0, 0, 30, 3, 27, 15, 0, 45, 0, 0, 0, 5, 2, 3, 30, 0, 35~
## $ 전체_20세 <dbl> 0, 0, 0, 0, 0, 0, 42, 0, 42, 0, 0, 0, 11, 1, 10, 49, 0, 60~
## $ 남자_20세 <dbl> 0, 0, 0, 0, 0, 0, 28, 0, 28, 0, 0, 0, 11, 1, 10, 5, 0, 16,~
## $ 여자_20세 <dbl> 0, 0, 0, 0, 0, 0, 14, 0, 14, 0, 0, 0, 0, 0, 0, 44, 0, 44, ~
## $ 전체_21세 <dbl> 0, 0, 0, 0, 0, 0, 58, 0, 58, 0, 0, 0, 2, 2, 0, 286, 0, 288~
## $ 남자_21세 <dbl> 0, 0, 0, 0, 0, 0, 51, 0, 51, 0, 0, 0, 2, 2, 0, 59, 0, 61, ~
## $ 여자_21세 <dbl> 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 0, 0, 0, 0, 0, 227, 0, 227, ~
## $ 전체_비율 <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,~
## $ 전체_2세_비율 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ~
## $ 전체_3세_비율 <dbl> 0.212, 0.000, 0.000, 0.000, 0.000, 0.000, 0.030, 0.000, 0.00~
## $ 전체_4세_비율 <dbl> 0.369, 0.000, 0.000, 0.000, 0.000, 0.000, 0.046, 0.000, 0.01~
## $ 전체_5세_비율 <dbl> 0.420, 0.005, 0.000, 0.000, 0.000, 0.000, 0.071, 0.000, 0.01~
## $ 전체_6세_비율 <dbl> 0.000, 0.162, 0.000, 0.000, 0.000, 0.000, 0.036, 0.000, 0.04~
## $ 전체_7세_비율 <dbl> 0.000, 0.177, 0.000, 0.000, 0.000, 0.000, 0.017, 0.000, 0.04~
## $ 전체_8세_비율 <dbl> 0.000, 0.164, 0.000, 0.000, 0.000, 0.000, 0.040, 0.000, 0.04~
## $ 전체_9세_비율 <dbl> 0.000, 0.152, 0.000, 0.000, 0.000, 0.000, 0.033, 0.000, 0.03~
## $ 전체_10세_비율 <dbl> 0.000, 0.160, 0.000, 0.000, 0.000, 0.000, 0.031, 0.000, 0.04~
## $ 전체_11세_비율 <dbl> 0.000, 0.162, 0.008, 0.000, 0.000, 0.000, 0.036, 0.000, 0.04~
## $ 전체_12세_비율 <dbl> 0.000, 0.017, 0.303, 0.000, 0.000, 0.000, 0.036, 0.000, 0.04~
## $ 전체_13세_비율 <dbl> 0.000, 0.000, 0.336, 0.000, 0.000, 0.000, 0.045, 0.000, 0.04~
## $ 전체_14세_비율 <dbl> 0.000, 0.000, 0.343, 0.009, 0.009, 0.009, 0.055, 0.000, 0.05~
## $ 전체_15세_비율 <dbl> 0.000, 0.000, 0.009, 0.296, 0.321, 0.206, 0.053, 0.000, 0.16~
## $ 전체_16세_비율 <dbl> 0.000, 0.000, 0.001, 0.329, 0.333, 0.316, 0.098, 0.125, 0.18~
## $ 전체_17세_비율 <dbl> 0.000, 0.000, 0.000, 0.322, 0.319, 0.331, 0.069, 0.875, 0.18~
## $ 전체_18세_비율 <dbl> 0.000, 0.000, 0.000, 0.043, 0.018, 0.131, 0.084, 0.000, 0.02~
## $ 전체_19세_비율 <dbl> 0.000, 0.000, 0.000, 0.002, 0.001, 0.006, 0.055, 0.000, 0.00~
## $ 전체_20세_비율 <dbl> 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.069, 0.000, 0.00~
## $ 전체_21세_비율 <dbl> 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.096, 0.000, 0.00~
## $ 남자_비율 <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,~
## $ 남자_2세_비율 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ~
## $ 남자_3세_비율 <dbl> 0.215, 0.000, 0.000, 0.000, 0.000, 0.000, 0.024, 0.000, 0.00~
## $ 남자_4세_비율 <dbl> 0.355, 0.000, 0.000, 0.000, 0.000, 0.000, 0.059, 0.000, 0.01~
## $ 남자_5세_비율 <dbl> 0.430, 0.004, 0.000, 0.000, 0.000, 0.000, 0.075, 0.000, 0.01~
## $ 남자_6세_비율 <dbl> 0.000, 0.163, 0.000, 0.000, 0.000, 0.000, 0.029, 0.000, 0.04~
## $ 남자_7세_비율 <dbl> 0.000, 0.176, 0.000, 0.000, 0.000, 0.000, 0.013, 0.000, 0.04~
## $ 남자_8세_비율 <dbl> 0.000, 0.161, 0.000, 0.000, 0.000, 0.000, 0.037, 0.000, 0.04~
## $ 남자_9세_비율 <dbl> 0.000, 0.153, 0.000, 0.000, 0.000, 0.000, 0.029, 0.000, 0.03~
## $ 남자_10세_비율 <dbl> 0.000, 0.163, 0.000, 0.000, 0.000, 0.000, 0.024, 0.000, 0.04~
## $ 남자_11세_비율 <dbl> 0.000, 0.162, 0.003, 0.000, 0.000, 0.000, 0.037, 0.000, 0.04~
## $ 남자_12세_비율 <dbl> 0.000, 0.018, 0.311, 0.000, 0.000, 0.000, 0.029, 0.000, 0.05~
## $ 남자_13세_비율 <dbl> 0.000, 0.000, 0.334, 0.000, 0.000, 0.000, 0.045, 0.000, 0.05~
## $ 남자_14세_비율 <dbl> 0.000, 0.000, 0.341, 0.009, 0.008, 0.009, 0.056, 0.000, 0.05~
## $ 남자_15세_비율 <dbl> 0.000, 0.000, 0.009, 0.309, 0.326, 0.256, 0.053, 0.000, 0.16~
## $ 남자_16세_비율 <dbl> 0.000, 0.000, 0.001, 0.326, 0.325, 0.329, 0.075, 0.120, 0.17~
## $ 남자_17세_비율 <dbl> 0.000, 0.000, 0.000, 0.330, 0.310, 0.391, 0.067, 0.880, 0.19~
## $ 남자_18세_비율 <dbl> 0.000, 0.000, 0.000, 0.025, 0.029, 0.013, 0.088, 0.000, 0.01~
## $ 남자_19세_비율 <dbl> 0.000, 0.000, 0.000, 0.002, 0.002, 0.002, 0.048, 0.000, 0.00~
## $ 남자_20세_비율 <dbl> 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.075, 0.000, 0.00~
## $ 남자_21세_비율 <dbl> 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.136, 0.000, 0.00~
## $ 여자_비율 <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,~
## $ 여자_2세_비율 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ~
## $ 여자_3세_비율 <dbl> 0.208, 0.000, 0.000, 0.000, 0.000, 0.000, 0.039, 0.000, 0.00~
## $ 여자_4세_비율 <dbl> 0.384, 0.000, 0.000, 0.000, 0.000, 0.000, 0.026, 0.000, 0.01~
## $ 여자_5세_비율 <dbl> 0.408, 0.007, 0.000, 0.000, 0.000, 0.000, 0.065, 0.000, 0.01~
## $ 여자_6세_비율 <dbl> 0.000, 0.162, 0.000, 0.000, 0.000, 0.000, 0.048, 0.000, 0.04~
## $ 여자_7세_비율 <dbl> 0.000, 0.178, 0.000, 0.000, 0.000, 0.000, 0.022, 0.000, 0.04~
## $ 여자_8세_비율 <dbl> 0.000, 0.167, 0.000, 0.000, 0.000, 0.000, 0.043, 0.000, 0.04~
## $ 여자_9세_비율 <dbl> 0.000, 0.151, 0.000, 0.000, 0.000, 0.000, 0.039, 0.000, 0.03~
## $ 여자_10세_비율 <dbl> 0.000, 0.156, 0.000, 0.000, 0.000, 0.000, 0.043, 0.000, 0.04~
## $ 여자_11세_비율 <dbl> 0.000, 0.163, 0.014, 0.000, 0.000, 0.000, 0.035, 0.000, 0.04~
## $ 여자_12세_비율 <dbl> 0.000, 0.016, 0.292, 0.000, 0.000, 0.000, 0.048, 0.000, 0.03~
## $ 여자_13세_비율 <dbl> 0.000, 0.000, 0.340, 0.000, 0.000, 0.000, 0.043, 0.000, 0.04~
## $ 여자_14세_비율 <dbl> 0.000, 0.000, 0.345, 0.009, 0.009, 0.009, 0.052, 0.000, 0.04~
## $ 여자_15세_비율 <dbl> 0.000, 0.000, 0.010, 0.282, 0.316, 0.142, 0.052, 0.000, 0.16~
## $ 여자_16세_비율 <dbl> 0.000, 0.000, 0.000, 0.332, 0.340, 0.300, 0.135, 0.148, 0.19~
## $ 여자_17세_비율 <dbl> 0.000, 0.000, 0.000, 0.313, 0.328, 0.253, 0.074, 0.852, 0.18~
## $ 여자_18세_비율 <dbl> 0.000, 0.000, 0.000, 0.061, 0.007, 0.284, 0.078, 0.000, 0.03~
## $ 여자_19세_비율 <dbl> 0.000, 0.000, 0.000, 0.002, 0.000, 0.011, 0.065, 0.000, 0.00~
## $ 여자_20세_비율 <dbl> 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.061, 0.000, 0.00~
## $ 여자_21세_비율 <dbl> 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.030, 0.000, 0.00~
mutate_if
mutate_if()
는 특정 조건과 일치하는 모든 변수의 수정을 위해 사용한다. mutate_if()
는 특정 데이터 타입의 열을 다른 데이터 타입으로 변경할 때 유용하게 사용된다. 만약 앞서 만든 데이터를 모두 문자열로 바꾸어야한다면 mutate_if()
가 매우 유용하게 사용된다.
df_mutate_if <- df_mutate_at |>
mutate_if(is.numeric, as.character)
df_mutate_if |>
head(10)
## # A tibble: 10 x 130
## 연도 시도 행정구역 학제 전체 남자 여자 전체_2세 남자_2세 여자_2세
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1999 서울 종로구 유치원 1535 817 718 0 0 0
## 2 1999 서울 종로구 초등학교 11182 5909 5273 0 0 0
## 3 1999 서울 종로구 중학교 6219 3722 2497 0 0 0
## 4 1999 서울 종로구 고등학교 24832 12762 12070 0 0 0
## 5 1999 서울 종로구 (일반계고) 19389 9683 9706 0 0 0
## 6 1999 서울 종로구 (전문계고) 5443 3079 2364 0 0 0
## 7 1999 서울 종로구 특수학교 605 375 230 0 0 0
## 8 1999 서울 종로구 각종학교 480 399 81 0 0 0
## 9 1999 서울 종로구 소계 44853 23984 20869 0 0 0
## 10 1999 서울 중구 유치원 1211 643 568 0 0 0
## # ... with 120 more variables: 전체_3세 <chr>, 남자_3세 <chr>, 여자_3세 <chr>,
## # 전체_4세 <chr>, 남자_4세 <chr>, 여자_4세 <chr>, 전체_5세 <chr>,
## # 남자_5세 <chr>, 여자_5세 <chr>, 전체_6세 <chr>, 남자_6세 <chr>,
## # 여자_6세 <chr>, 전체_7세 <chr>, 남자_7세 <chr>, 여자_7세 <chr>,
## # 전체_8세 <chr>, 남자_8세 <chr>, 여자_8세 <chr>, 전체_9세 <chr>,
## # 남자_9세 <chr>, 여자_9세 <chr>, 전체_10세 <chr>, 남자_10세 <chr>,
## # 여자_10세 <chr>, 전체_11세 <chr>, 남자_11세 <chr>, 여자_11세 <chr>, ...
df_mutate_if |>
glimpse()
## Rows: 41,985
## Columns: 130
## $ 연도 <chr> "1999", "1999", "1999", "1999", "1999", "1999", "1999", "~
## $ 시도 <chr> "서울", "서울", "서울", "서울", "서울", "서울", "서울", "~
## $ 행정구역 <chr> "종로구", "종로구", "종로구", "종로구", "종로구", "종로구",~
## $ 학제 <chr> "유치원", "초등학교", "중학교", "고등학교", "(일반계고)",~
## $ 전체 <chr> "1535", "11182", "6219", "24832", "19389", "5443", "605",~
## $ 남자 <chr> "817", "5909", "3722", "12762", "9683", "3079", "375", "3~
## $ 여자 <chr> "718", "5273", "2497", "12070", "9706", "2364", "230", "8~
## $ 전체_2세 <chr> "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"~
## $ 남자_2세 <chr> "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"~
## $ 여자_2세 <chr> "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"~
## $ 전체_3세 <chr> "325", "0", "0", "0", "0", "0", "18", "0", "343", "141", "~
## $ 남자_3세 <chr> "176", "0", "0", "0", "0", "0", "9", "0", "185", "80", "0"~
## $ 여자_3세 <chr> "149", "0", "0", "0", "0", "0", "9", "0", "158", "61", "0"~
## $ 전체_4세 <chr> "566", "0", "0", "0", "0", "0", "28", "0", "594", "456", "~
## $ 남자_4세 <chr> "290", "0", "0", "0", "0", "0", "22", "0", "312", "246", "~
## $ 여자_4세 <chr> "276", "0", "0", "0", "0", "0", "6", "0", "282", "210", "0~
## $ 전체_5세 <chr> "644", "61", "0", "0", "0", "0", "43", "0", "748", "614", ~
## $ 남자_5세 <chr> "351", "23", "0", "0", "0", "0", "28", "0", "402", "317", ~
## $ 여자_5세 <chr> "293", "38", "0", "0", "0", "0", "15", "0", "346", "297", ~
## $ 전체_6세 <chr> "0", "1817", "0", "0", "0", "0", "22", "0", "1839", "0", "~
## $ 남자_6세 <chr> "0", "964", "0", "0", "0", "0", "11", "0", "975", "0", "10~
## $ 여자_6세 <chr> "0", "853", "0", "0", "0", "0", "11", "0", "864", "0", "94~
## $ 전체_7세 <chr> "0", "1978", "0", "0", "0", "0", "10", "0", "1988", "0", "~
## $ 남자_7세 <chr> "0", "1042", "0", "0", "0", "0", "5", "0", "1047", "0", "1~
## $ 여자_7세 <chr> "0", "936", "0", "0", "0", "0", "5", "0", "941", "0", "952~
## $ 전체_8세 <chr> "0", "1833", "0", "0", "0", "0", "24", "0", "1857", "0", "~
## $ 남자_8세 <chr> "0", "951", "0", "0", "0", "0", "14", "0", "965", "0", "96~
## $ 여자_8세 <chr> "0", "882", "0", "0", "0", "0", "10", "0", "892", "0", "86~
## $ 전체_9세 <chr> "0", "1703", "0", "0", "0", "0", "20", "0", "1723", "0", "~
## $ 남자_9세 <chr> "0", "907", "0", "0", "0", "0", "11", "0", "918", "0", "95~
## $ 여자_9세 <chr> "0", "796", "0", "0", "0", "0", "9", "0", "805", "0", "796~
## $ 전체_10세 <chr> "0", "1785", "0", "0", "0", "0", "19", "0", "1804", "0", "~
## $ 남자_10세 <chr> "0", "961", "0", "0", "0", "0", "9", "0", "970", "0", "894~
## $ 여자_10세 <chr> "0", "824", "0", "0", "0", "0", "10", "0", "834", "0", "79~
## $ 전체_11세 <chr> "0", "1814", "47", "0", "0", "0", "22", "0", "1883", "0", ~
## $ 남자_11세 <chr> "0", "955", "13", "0", "0", "0", "14", "0", "982", "0", "9~
## $ 여자_11세 <chr> "0", "859", "34", "0", "0", "0", "8", "0", "901", "0", "84~
## $ 전체_12세 <chr> "0", "187", "1885", "0", "0", "0", "22", "0", "2094", "0",~
## $ 남자_12세 <chr> "0", "104", "1157", "0", "0", "0", "11", "0", "1272", "0",~
## $ 여자_12세 <chr> "0", "83", "728", "0", "0", "0", "11", "0", "822", "0", "5~
## $ 전체_13세 <chr> "0", "4", "2092", "1", "1", "0", "27", "0", "2124", "0", "~
## $ 남자_13세 <chr> "0", "2", "1243", "0", "0", "0", "17", "0", "1262", "0", "~
## $ 여자_13세 <chr> "0", "2", "849", "1", "1", "0", "10", "0", "862", "0", "0"~
## $ 전체_14세 <chr> "0", "0", "2131", "218", "167", "51", "33", "0", "2382", "~
## $ 남자_14세 <chr> "0", "0", "1270", "109", "80", "29", "21", "0", "1400", "0~
## $ 여자_14세 <chr> "0", "0", "861", "109", "87", "22", "12", "0", "982", "0",~
## $ 전체_15세 <chr> "0", "0", "58", "7342", "6219", "1123", "32", "0", "7432",~
## $ 남자_15세 <chr> "0", "0", "34", "3939", "3152", "787", "20", "0", "3993", ~
## $ 여자_15세 <chr> "0", "0", "24", "3403", "3067", "336", "12", "0", "3439", ~
## $ 전체_16세 <chr> "0", "0", "5", "8169", "6447", "1722", "59", "60", "8293",~
## $ 남자_16세 <chr> "0", "0", "4", "4162", "3149", "1013", "28", "48", "4242",~
## $ 여자_16세 <chr> "0", "0", "1", "4007", "3298", "709", "31", "12", "4051", ~
## $ 전체_17세 <chr> "0", "0", "1", "7991", "6187", "1804", "42", "420", "8454"~
## $ 남자_17세 <chr> "0", "0", "1", "4210", "3005", "1205", "25", "351", "4587"~
## $ 여자_17세 <chr> "0", "0", "0", "3781", "3182", "599", "17", "69", "3867", ~
## $ 전체_18세 <chr> "0", "0", "0", "1061", "350", "711", "51", "0", "1112", "0~
## $ 남자_18세 <chr> "0", "0", "0", "322", "282", "40", "33", "0", "355", "0", ~
## $ 여자_18세 <chr> "0", "0", "0", "739", "68", "671", "18", "0", "757", "0", ~
## $ 전체_19세 <chr> "0", "0", "0", "50", "18", "32", "33", "0", "83", "0", "0"~
## $ 남자_19세 <chr> "0", "0", "0", "20", "15", "5", "18", "0", "38", "0", "0",~
## $ 여자_19세 <chr> "0", "0", "0", "30", "3", "27", "15", "0", "45", "0", "0",~
## $ 전체_20세 <chr> "0", "0", "0", "0", "0", "0", "42", "0", "42", "0", "0", "~
## $ 남자_20세 <chr> "0", "0", "0", "0", "0", "0", "28", "0", "28", "0", "0", "~
## $ 여자_20세 <chr> "0", "0", "0", "0", "0", "0", "14", "0", "14", "0", "0", "~
## $ 전체_21세 <chr> "0", "0", "0", "0", "0", "0", "58", "0", "58", "0", "0", "~
## $ 남자_21세 <chr> "0", "0", "0", "0", "0", "0", "51", "0", "51", "0", "0", "~
## $ 여자_21세 <chr> "0", "0", "0", "0", "0", "0", "7", "0", "7", "0", "0", "0"~
## $ 전체_비율 <chr> "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1",~
## $ 전체_2세_비율 <chr> "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", ~
## $ 전체_3세_비율 <chr> "0.212", "0", "0", "0", "0", "0", "0.03", "0", "0.008", "0.1~
## $ 전체_4세_비율 <chr> "0.369", "0", "0", "0", "0", "0", "0.046", "0", "0.013", "0.~
## $ 전체_5세_비율 <chr> "0.42", "0.005", "0", "0", "0", "0", "0.071", "0", "0.017", ~
## $ 전체_6세_비율 <chr> "0", "0.162", "0", "0", "0", "0", "0.036", "0", "0.041", "0"~
## $ 전체_7세_비율 <chr> "0", "0.177", "0", "0", "0", "0", "0.017", "0", "0.044", "0"~
## $ 전체_8세_비율 <chr> "0", "0.164", "0", "0", "0", "0", "0.04", "0", "0.041", "0",~
## $ 전체_9세_비율 <chr> "0", "0.152", "0", "0", "0", "0", "0.033", "0", "0.038", "0"~
## $ 전체_10세_비율 <chr> "0", "0.16", "0", "0", "0", "0", "0.031", "0", "0.04", "0", ~
## $ 전체_11세_비율 <chr> "0", "0.162", "0.008", "0", "0", "0", "0.036", "0", "0.042",~
## $ 전체_12세_비율 <chr> "0", "0.017", "0.303", "0", "0", "0", "0.036", "0", "0.047",~
## $ 전체_13세_비율 <chr> "0", "0", "0.336", "0", "0", "0", "0.045", "0", "0.047", "0"~
## $ 전체_14세_비율 <chr> "0", "0", "0.343", "0.009", "0.009", "0.009", "0.055", "0", ~
## $ 전체_15세_비율 <chr> "0", "0", "0.009", "0.296", "0.321", "0.206", "0.053", "0", ~
## $ 전체_16세_비율 <chr> "0", "0", "0.001", "0.329", "0.333", "0.316", "0.098", "0.12~
## $ 전체_17세_비율 <chr> "0", "0", "0", "0.322", "0.319", "0.331", "0.069", "0.875", ~
## $ 전체_18세_비율 <chr> "0", "0", "0", "0.043", "0.018", "0.131", "0.084", "0", "0.0~
## $ 전체_19세_비율 <chr> "0", "0", "0", "0.002", "0.001", "0.006", "0.055", "0", "0.0~
## $ 전체_20세_비율 <chr> "0", "0", "0", "0", "0", "0", "0.069", "0", "0.001", "0", "0~
## $ 전체_21세_비율 <chr> "0", "0", "0", "0", "0", "0", "0.096", "0", "0.001", "0", "0~
## $ 남자_비율 <chr> "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1",~
## $ 남자_2세_비율 <chr> "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", ~
## $ 남자_3세_비율 <chr> "0.215", "0", "0", "0", "0", "0", "0.024", "0", "0.008", "0.~
## $ 남자_4세_비율 <chr> "0.355", "0", "0", "0", "0", "0", "0.059", "0", "0.013", "0.~
## $ 남자_5세_비율 <chr> "0.43", "0.004", "0", "0", "0", "0", "0.075", "0", "0.017", ~
## $ 남자_6세_비율 <chr> "0", "0.163", "0", "0", "0", "0", "0.029", "0", "0.041", "0"~
## $ 남자_7세_비율 <chr> "0", "0.176", "0", "0", "0", "0", "0.013", "0", "0.044", "0"~
## $ 남자_8세_비율 <chr> "0", "0.161", "0", "0", "0", "0", "0.037", "0", "0.04", "0",~
## $ 남자_9세_비율 <chr> "0", "0.153", "0", "0", "0", "0", "0.029", "0", "0.038", "0"~
## $ 남자_10세_비율 <chr> "0", "0.163", "0", "0", "0", "0", "0.024", "0", "0.04", "0",~
## $ 남자_11세_비율 <chr> "0", "0.162", "0.003", "0", "0", "0", "0.037", "0", "0.041",~
## $ 남자_12세_비율 <chr> "0", "0.018", "0.311", "0", "0", "0", "0.029", "0", "0.053",~
## $ 남자_13세_비율 <chr> "0", "0", "0.334", "0", "0", "0", "0.045", "0", "0.053", "0"~
## $ 남자_14세_비율 <chr> "0", "0", "0.341", "0.009", "0.008", "0.009", "0.056", "0", ~
## $ 남자_15세_비율 <chr> "0", "0", "0.009", "0.309", "0.326", "0.256", "0.053", "0", ~
## $ 남자_16세_비율 <chr> "0", "0", "0.001", "0.326", "0.325", "0.329", "0.075", "0.12~
## $ 남자_17세_비율 <chr> "0", "0", "0", "0.33", "0.31", "0.391", "0.067", "0.88", "0.~
## $ 남자_18세_비율 <chr> "0", "0", "0", "0.025", "0.029", "0.013", "0.088", "0", "0.0~
## $ 남자_19세_비율 <chr> "0", "0", "0", "0.002", "0.002", "0.002", "0.048", "0", "0.0~
## $ 남자_20세_비율 <chr> "0", "0", "0", "0", "0", "0", "0.075", "0", "0.001", "0", "0~
## $ 남자_21세_비율 <chr> "0", "0", "0", "0", "0", "0", "0.136", "0", "0.002", "0", "0~
## $ 여자_비율 <chr> "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1",~
## $ 여자_2세_비율 <chr> "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", ~
## $ 여자_3세_비율 <chr> "0.208", "0", "0", "0", "0", "0", "0.039", "0", "0.008", "0.~
## $ 여자_4세_비율 <chr> "0.384", "0", "0", "0", "0", "0", "0.026", "0", "0.014", "0.~
## $ 여자_5세_비율 <chr> "0.408", "0.007", "0", "0", "0", "0", "0.065", "0", "0.017",~
## $ 여자_6세_비율 <chr> "0", "0.162", "0", "0", "0", "0", "0.048", "0", "0.041", "0"~
## $ 여자_7세_비율 <chr> "0", "0.178", "0", "0", "0", "0", "0.022", "0", "0.045", "0"~
## $ 여자_8세_비율 <chr> "0", "0.167", "0", "0", "0", "0", "0.043", "0", "0.043", "0"~
## $ 여자_9세_비율 <chr> "0", "0.151", "0", "0", "0", "0", "0.039", "0", "0.039", "0"~
## $ 여자_10세_비율 <chr> "0", "0.156", "0", "0", "0", "0", "0.043", "0", "0.04", "0",~
## $ 여자_11세_비율 <chr> "0", "0.163", "0.014", "0", "0", "0", "0.035", "0", "0.043",~
## $ 여자_12세_비율 <chr> "0", "0.016", "0.292", "0", "0", "0", "0.048", "0", "0.039",~
## $ 여자_13세_비율 <chr> "0", "0", "0.34", "0", "0", "0", "0.043", "0", "0.041", "0",~
## $ 여자_14세_비율 <chr> "0", "0", "0.345", "0.009", "0.009", "0.009", "0.052", "0", ~
## $ 여자_15세_비율 <chr> "0", "0", "0.01", "0.282", "0.316", "0.142", "0.052", "0", "~
## $ 여자_16세_비율 <chr> "0", "0", "0", "0.332", "0.34", "0.3", "0.135", "0.148", "0.~
## $ 여자_17세_비율 <chr> "0", "0", "0", "0.313", "0.328", "0.253", "0.074", "0.852", ~
## $ 여자_18세_비율 <chr> "0", "0", "0", "0.061", "0.007", "0.284", "0.078", "0", "0.0~
## $ 여자_19세_비율 <chr> "0", "0", "0", "0.002", "0", "0.011", "0.065", "0", "0.002",~
## $ 여자_20세_비율 <chr> "0", "0", "0", "0", "0", "0", "0.061", "0", "0.001", "0", "0~
## $ 여자_21세_비율 <chr> "0", "0", "0", "0", "0", "0", "0.03", "0", "0", "0", "0", "0~
'데이터 전처리' 카테고리의 다른 글
탐색적 데이터 분석(Exploratory Data Analysis)의 자동화 패키지 in R - Part 1 : SmartEDA (0) | 2022.09.14 |
---|---|
연도별 시도별 비정규 교원 1인당 학생수 in R - rank() (20) | 2022.07.13 |
누적합과 누적평균 in R (0) | 2022.06.26 |
열 이름 바꾸기 in R (0) | 2022.06.21 |
일별(일간) 데이터를 주별(주간) 데이터로 만들기 in R (0) | 2022.06.18 |
댓글