Wide format: 데이터 분석에서 사용하는 표준적인 형태
흔히 보던 가로(열)이 세로(행)보다 넓찍한 형태가 특징이다.
Long format: 특정 패키지에서 요구하는 데이터 형태
ggplot2 등 특수한 상황에서 요구된다. 세로로 긴 형태가 특징.
if (!require(reshape2)) { install.packages("reshape2") ; library(reshape2) }
이 포맷변경에 필요한 reshape2 패키지를 깔아주자.
1. melt(): Wide -> Long
melt(원본데이터, 고정칼럼)
melt(data = airquality, id.vars= c("month","day"))
-----------------------------------------------------
month day variable value
1 5 1 ozone 41
2 5 2 ozone 36
3 5 3 ozone 12
#head(n = 3)적용시킨 것임
airquality라는 R에 있는 데이터를 활용했다.
참고로 원본 airquality는
ozone | solar.r | wind | temp | month | day
1 41 | 190 | 7.4 | 67 | 5 | 1
2 36 | 118 | 8.0 | 72 | 5 | 2
이런식으로 저장된 153(행) x 6(열)형태의 데이터다.
단순 melt만 사용하면 variable(ozone)과 value(ozone의 값)값만 열에 남아있게 되지만
id.vars를 지정하면 위처럼 month, day등 원래 있던 자료도 고정시킬 수 있다.
variable과 value의 이름 변경은
melt(data = airquality, id.vars= c("month","day")), variable.name = "climate_variable",
value.name = "climate_value")
이런식으로 컬럼명.name = "바꿀 컬럼명"
2. dcast(): Long -> Wide
바꿨으니 다시 되돌아 갈 수도 있어야 한다.
dcast(원본데이터, 열1 + 열2... ~ variable이름, value.var = ‘value값 명’)
dcast(aql, month + day ~ climate_variable, value.var ="climate_value")
--------------------------------------------------------------------------
month day ozone solar.r wind temp
1 5 1 41 190 7.4 67
2 5 2 36 118 8.0 72
3 5 3 12 149 12.6 74
4 5 4 18 313 11.5 62
5 5 5 NA NA 14.3 56
#head(n=5)
-------------------------------------------
## 추가할 수 있는 옵션들 ##
fun.aggregate = mean #평균내서 새로 만들기
margins = TRUE #all 추가
na.rm = TRUE
dcast(원본데이터, 열1 + 열2... 에서 id.vars를 더 추가해서 고정시켰다면 그 고정시킨 열까지도 dcast에 추가해줘야 한다.
'게임 제작 관련 > 개발환경(프로그램)' 카테고리의 다른 글
R 선형회귀, KNN회귀 모형 그리기 (lm(), FNN패키지) (0) | 2022.10.27 |
---|---|
R plot함수 (0) | 2022.10.27 |
R 시각화(그래프 그리기) 전 준비 (0) | 2022.10.27 |
Python Turtle 모듈 응용(디지털 시계 만들기) (1) | 2022.10.14 |
Python format함수(문자열 출력 방법) (0) | 2022.10.14 |
댓글