일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 오픈API
- QGIS라벨링
- 지도
- 라이엇api
- 시각화
- riotapi
- 오류
- 마커클러스터
- matplotlib
- kepler.gl
- geopandas설치
- Folium
- 라이엇
- covid
- geopnadas
- 파이썬
- API
- 공공데이터포털
- 코로나
- Python
- 에러
- 막대그래프
- geopandas에러
- kepler
- OSMnx
- map
- r
- pipwin
- covid19
- 인코등
- Today
- Total
Nerdy
[R] Why data.table? 본문
■ 데이터 테이블이란?
R의 data.table은 대용량 데이터를 빠른 집계와 빠른 정렬된 조인 , 그룹별로 빠른 열 합치기/수정/삭제를 할 수 있는 아주 유용한 패키지다.
'왜 data.table인가?'를 설명할 수 있는 data.table GitHub에서는 여러 장점들을 설명하고 있고 그 중 몇가지만 알아보도록 한다.
1). 빠르게 쓰고 읽을 수 있는 간결한 구문(concise syntax: fast to type, fast to read)
얼마나 빠르게 쓰고 읽을 수 있는 간결한 구문인지 비교를 위해 dplyr과 data.table 두 개 패키지를 비교해봤다.
어떤 data에 대해서 그룹 'a' 별로 변수 'x'의 평균을 구해보는 예시를 구문으로 작성하여 비교를 해보면 아래와 같다.
# 1. dplyr
library(dplyr)
data %>%
group_by(a) %>%
summarise(mean(x))
# 2. data.table
library(data.table)
data[, mean(x), by = 'a']
한눈에 봐도 data.table 구문이 간결하다는 것을 알 수 있다.(참고사이트에서는 '직관적이고 우아하다' 라고 표현을 했다.)
2). 빠른 속도(fast speed)
5GB 데이터셋에서 'id1' 그룹별로 'v1' 칼럼에 대해 합(sum)을 구하라는 집계를 수행하는 것이고 패키지별 속도는 아래와 같이 결과를 얻었으며 data.table이 엄청 빠르다는 것을 알 수 있다.
- R data.table : 12초
- R dplyr : 156초
- Pandas : 100초
3). 효율적인 메모리 사용(memory efficient)
2번째와 동일하게 50GB 대용량 데이터셋 수행 속도를 볼 수 있으며 마찬가지로 data.table이 수행 속도가 빨랐다는 것을 알 수 있다.
- data.table : 123초
- spark : 381초
- Python datatable : 712초
- R dplyr, Pandas : 메모리 부족
이정도만 해도 data.table은 엄청난 매력적인 장점들을 지니고 있으며 배우는데 있어 구문이 매우 쉽기에(직관적이며 우아함) 큰 문제는 없을거라 생각한다.
■ data.table 설치
R에서 data.table 설치하는 방법은 정말 간단하다. R에서 install.packages를 사용해 패키지를 다운 받으면 된다.
install.packages('data.table')
library(data.table)
■ Reference
https://towardsdatascience.com/blazing-fast-data-wrangling-with-r-data-table-de5045cc4b4d
https://github.com/Rdatatable/data.table
https://h2oai.github.io/db-benchmark/
'R' 카테고리의 다른 글
[R] 코로나 19 누적 데이터를 대상으로 막대 차트 만들기 (0) | 2022.06.23 |
---|---|
[R] 오픈 API를 활용한 코로나 19 사망자 수 그래프 그리기 (0) | 2022.06.23 |
[R] 메모리 부족 시 늘리는 방법 (0) | 2022.06.22 |
KOSPI 지수 데이터를 활용한 시계열 분석 (0) | 2022.06.15 |
주성분 분석(PCA) (0) | 2022.04.26 |