본문 바로가기
R

R ) 피벗, 언피벗 해보기 dcast, melt in r

by C.Mond 2022. 8. 20.
728x90
728x90

안녕하세요

이번엔 피벗 언피벗하는 방법에 대해 공부한것을 기록하려 합니다.

 

reshape2패키지를 설치해야합니다.

 

먼저 피벗을 해보려고 합니다.

df <-
data.frame(col1=c("a","b","c","a",NA,"c"),
col2=c(NA,"e","f","d","e","f"),
col3=c(4,5,NA,7,8,9),
col4=c(7,8,9,10,NA,12))

위와 같은 data를 쓰도록 하겠습니다.

피벗은 dcast함수로 할 수 있습니다.

dcast(데이터 프레임, 그룹핑컬럼 ~ 컬럼으로 만들 열, 집계함수, value로 쓰일 컬럼)
dcast(df,col1~col2,fun=,value.var=)
dcast(df,col1~col2,fun=mean,value.var="col3")

dcast를 사용하면 위와 같이 나옵니다

여기서 col1이 "C"이면서 f열에 NA라고 나온것이 있습니다.

기존 df에서 NA를 갖고 있어서 계산이 안된것인데 이는

dcast(df,col1~col2,fun=function(x){ mean(x,na.rm=T) },value.var="col3")

위와 같이 하면 나타낼 수 있습니다.

 

 

다음은 언피벗 melt입니다. 

#melt(데이터 프레임, id.var ="측정기준이 되는 컬럼",
measuer.var = "한 컬럼에 넣을 컬럼들",
variable.name ="한 컬럼의 name",
value.name="값 컬럼의 name")
melt(df,
id.vars=c("col1"),
measure.vars=c("col3","col4"),
variable.name="type",
value.name="value")

위와 같이 나타낼 수 있습니다.

728x90
728x90

댓글