프로그래밍 /R

[R] 데이터 재가공

yooj_lee 2019. 6. 27. 23:40
300x250

데이터 재가공

1. cbind와 rbind

동일한(열의 수와 이름 모두 일치) 열들 또는 동일한 수의 행을 가진 두 데이터셋을 가졌을 경우

cbind -> column bind; 열 기준으로 합침(vertical), 옆에다 갖다 붙인다고 생각하면 됨

rbind -> row bind; 행 기준으로 합침(horizontal), 아래다 갖다 붙인다고 생각하면 됨

 

2. 조인(join)

데이터가 항상 cbind를 사용해 결합할 수 있을 정도로 잘 정렬된 형태로 존재하지는 X.

조인을 위한 가장 일반적인 함수 세 가지는 merge, plyr 패키지의 join, data.table에서의 병합 기능

 

1) merge

merge(x, y, by.x, by.y)

이때,

x, y = 병합하고자 하는 두 가지 data.frame 객체

by.x = 좌측 data.frame의 키가 되는 열을 지정

by.y = 우측 data.frame에 대해 키가 되는 열 지정

여기서 키는 각 data.frame에 대해 다른 열 이름을 지정할 수 있다(그러나 내용물이 공통이어야 함.)

→ 내용물이 공통이라는 건 담고 있는 관측값의 종류(?)가 같아야 하는 건지?

느리다는 단점.

 

2) plyr join

 

SQL 배우면 채워넣을 예정.

 

 

3) reshape2

① melt

: pivot table을 풀어헤치는 것. why? pivot table은 사람이 보기에는 괜찮지만 ggplot2로 그래프를 그리거나 분석 알고리즘을 수행할 때는 적합하지 않음. 

시각화 또는 통계를 위한 전처리 시 많이 활용

melt(data = df, id.vars = "obs", variable.name = "Group", value.name = "count")

- id.vars: 어떤 열들이 한 행에서 유일하게 확인되는지 명시

- variable.name: name of variable used to store measured variable names

- value.name: name of variable used to store values

 

② dcast

: melt함수의 반대, melt함수로 분해한 데이터를 다시 조립(cast), pivoting하는 것. 군집 비교 및 연산을 위한 처리에 활용. dcast는 cast함수 중 대표 함수.

dcast(data = df, formula = obs ~ Group, value.var = "Count")

- data: 사용될 데이터

- formula: 좌측에는 계속 유지되어야 하는 열 지정, 우측에는 새로 추가될 열의 이름들을 값으로 가지고 있는 열들을 지정

- value.var: formula 인자 우측의 열들의 값에 의해 생성될 새로운 열들에 채워질 값들을 가지고 있는 열(문자형)

 

 

 

이번 챕터는 좀 더 연습 후에 보강 예정.

300x250