데이터분석/Code & Tools & Script Snippet

Long - Wide 데이터

늘근이 2018. 4. 15. 23:46

롱데이터와 와이드데이터는 명칭은 몰라도 그전부터 자주 접하던 상황으로,

특히 ERP와 같이 데이터가 정형화 되어있지만 열심히 잘라서 보기좋게 만들거나, 데이터를 여기저기 합성을 해야할때 밑으로 쭉 내리는 경우가 있고, 옆으로 쫙 늘리는 경우가 있다.


롱 데이터는 밑으로 쭈욱 내리는 데이터다. R에서 reshape2을 이용해서 melt / cast를 통해 롱과 와이드를 쉽게 바꿀수있는데, melt는 죄다 녹여서 variable과 value를 밑으로 길게 늘이며, cast를 이용하면 다시 와이드 데이터로, variable이 가지고 있는 속성 하나하나마다 컬럼이 만들어진다.

wide데이터의 단점은 컬럼수가 확정되어야 한다는것이며, 이는 새로운 종류의 데이터가 들어왔을때 쥐약이다. 테이블변경이나 컬럼추가는 실제 시스템을 이용하는 사람과 운영하는 사람 간에 괴리가 제일 큰 작업이다. 

long데이터처럼 밑으로 내리는 경우에는 유동적이나, 데이터를 한눈에 알아보기 쉽지않고, 자칫하면 컬럼이 구분되어야할 상황인데도 불구하고 추후 운영의 부담을 가진 나머지 죄다 롱으로 때려박아 넣으면 그건 그것대로 유지보수가 힘들어지고 업무파악이 힘들어지는 경우도 많이 보았다.

기본적으로

ABAP 은 사실 해당하는 로직을 매일 다시 짜야하는 경우가 대부분이며, 

SQL로 처리할 경우에는 SQL 고오급 신봉자라면 쉽게 하기도 한다. 한페이지가 넘는 길이의 SQL로 실력을 뽐내나 가독성이 떨어지는 측면이 있어보이고,

R과 파이썬처럼 라이브러리 활성화가 잘되어있는곳은 reshape 류로 해결가능하며,

Java 는 몇가지 Scala와 같은 언어적 대안과 자료구조를 핸들링 할수 있는데 R,Python처럼 개운하지는 않다. 


왜 이런 일기를 쓰게되었는지 잘 모르겠다.