티스토리 뷰
R에서는 비율을 구하는 방법이 여러가지 있는데요 그중에서도 matrix 테이블을 한번에 proportion 테이블로 변환시키는 작업을 많이 하게 됩니다. 이때 가장 편하게 사용하는게 prop.table() 함수입니다.
# 연습용 데이터 셋 만들기
> mydata <- matrix(sample(100,15),ncol = 3)
> colnames(mydata) <- LETTERS[seq(1,3)]
> rownames(mydata) <- sprintf('sector-%d',seq(5))
> head(mydata)
A B C
sector-1 22 21 25
sector-2 81 32 39
sector-3 88 57 52
sector-4 86 8 46
sector-5 63 7 33
# prop.table(x) : sum() == 1
> prop.table(mydata)
A B C
sector-1 0.03333333 0.03181818 0.03787879
sector-2 0.12272727 0.04848485 0.05909091
sector-3 0.13333333 0.08636364 0.07878788
sector-4 0.13030303 0.01212121 0.06969697
sector-5 0.09545455 0.01060606 0.05000000
> prop.table(mydata) %>% sum
[1] 1
prop.table에서 margin값을 주지 않으면 전체합이 1이 되는 비율 테이블을 얻을 수 있습니다.
# prop.table(x, margin=1) : rowSums() = 1
> prop.table(mydata,1)
A B C
sector-1 0.3235294 0.30882353 0.3676471
sector-2 0.5328947 0.21052632 0.2565789
sector-3 0.4467005 0.28934010 0.2639594
sector-4 0.6142857 0.05714286 0.3285714
sector-5 0.6116505 0.06796117 0.3203883
> prop.table(mydata,1) %>% rowSums
sector-1 sector-2 sector-3 sector-4 sector-5
1 1 1 1 1
margin=1값을 주면, rowSums이 1이 되는 비율 테이블을 얻을 수 있습니다. 연습데이터에서는 각 sector별로 A, B, C의 합이 1이 되는 값이 되겠습니다.
# prop.table(x, margin=2) : colSums() = 1
> prop.table(mydata,2)
A B C
sector-1 0.06470588 0.168 0.1282051
sector-2 0.23823529 0.256 0.2000000
sector-3 0.25882353 0.456 0.2666667
sector-4 0.25294118 0.064 0.2358974
sector-5 0.18529412 0.056 0.1692308
> prop.table(mydata,2) %>% colSums
A B C
1 1 1
margin=2값을 주면, colSums이 1이 되는 비율 테이블을 얻을 수 있습니다. 연습데이터에서는 A, B, C각각의 sector 합이 1이 되는 비율이 되겠습니다.
'R' 카테고리의 다른 글
R | str_match()를 이용해 원하는 단어 추출하기(stringr) (0) | 2020.04.13 |
---|---|
R | COVID-19 데이터로 무엇을 할 수 있을까 | 1. 코로나바이러스감염증이란? (0) | 2020.04.01 |
R | format()을 이용해 numeric vector다루기 (0) | 2020.03.26 |
R | ggplot2로 히스토그램 그리기 (0) | 2020.03.25 |
R | 숫자 천단위 마다 콤마 찍기 (formattable) (1) | 2020.03.25 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Python
- SEQ
- format
- 파이썬
- 2진수
- 엑셀
- 숫자
- geom_line
- Cast
- Order
- for loop
- RStudio
- hist
- Command
- visualizing
- BIOINFORMATICS
- 팟빵
- 코로나바이러스
- coronavirus
- geom_bar
- Heatmap
- covid
- plot
- Excel
- data
- r
- 데이터
- Coding
- Visualization
- comma
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함