본문 바로가기

배우기/복습노트[R과 분석]

[복습] R(programming language) 데이터 구조 변경(long, wide) + 하루끝(20231206)

728x90
반응형

1. 데이터의 분류

  1) long data(=tidy data)

    - rdbms의 데이터 형식이다(relationshop dbms). 하나의 속성별로 컬림이 된다.

여기서 속성이란 하나의 관찰 대상으로 데이터로 표현할 수 있는 값을 의미한다. 예를 들어 성별 ,성적, 연도 등이 되겠다.

왜 하나의 속성으로 컬럼을 만드는 것일까? 이는 join이 가능하며 group by에도 어울리기 때문이다.

 

  2) wide data(=cross data)

    - 요약정보(직관적), 행별, 열별 연산이 용이하다.

    - 그러나 join이 불가하며 컬럼 변형이 잦다(컬럼의 추가, 삭제 발생).

예를 들어 연도가 늘어날 때마다 컬럼을 추가하는 방식은 데이터 관리에 있어 비효율적인 방식이다. 그리고 DBMS에서 계속 컬럼이 추가 된다는 것은(구조적 변형) 운영 측면에서도 효율적이지 않다.

대체적으로 시각화에서 요구하는 데이터 구조이다.

 

 

 

 

2. 데이터의 구조 변경

  1) long → wide(unstack)

함수 두 가지가 있는데 여기에서는 reshape2::dcast를 사용할 것이다.

문법은 아래와 같다.

dcast(data = ,                             #원본 데이터 프레임

          formula = ,                        # 행에 배치할 대상 ~ 컬럼에 배치할 대상

          fun.aggregate  = ,             # 요약 함수

          .......,

          margins = ,

          subset = ,

           fill = ,

          drop = ,

          value.var = )                    # value 컬럼

 

 

예시로 확인해보자.

예) melt_ex.csv 파일을 읽고 월별 연도별 latte 판매량 총 합을 표현하는 교차표를 출력하여라.

 

 

 

연습문제

googleVis::Fruits 데이터를 사용하여 

1) 과일 이름별 연도별 sales의 총합 교차표를 출력하여라

 

 

2) 연도별 지역별 profit의 평균 교차표를 출력하여라.

 

 

예를 들어 연도별 월별 라떼 판매량의 총 합을 교차표로 나타낸다면

이런 형식으로 나타낼 수 있다.

여기서 노란 음영으로 칠해진 곳을 value column이라고 한다.

sum이라는 함수가 들어가는 요약 컬럼이 되는 곳이다.

이런 교차표를 만들기 위해서는 행 방향에 배치될 자료, 열 방향으로 배치될 자료, 그리고 value 컬럼을 알면 된다.

 

 

이제 문풀하러 가야지

728x90
반응형