[R] 데이터 구조 변형
1
2
3
4
5
6
# 사용할 패키지
install.packages("tidyr")
install.packages("reshape2")
library(tidyr)
library(reshape2)
library(dplyr)
사용할 데이터 파일
1
2
3
4
5
> me_m
이름 국어 영어 수학
1 민수 100 80 72
2 철수 30 50 84
3 수산 40 10 12
넓은 모양을 긴 모양으로
tidyr::gather()
1
2
3
4
5
# gather(데이터, key = "기준 열 이름", "기준열",
# value = "변환 열 이름", "변환 열")
me_m2 <- me_m |> # 사용을 위해 변환된 구조를 me_m2로 담음
gather(key="c_key",
value = "c_value", "영어", "수학")
1
2
3
4
5
6
7
이름 국어 c_key c_value
1 민수 100 영어 80
2 철수 30 영어 50
3 수산 40 영어 10
4 민수 100 수학 72
5 철수 30 수학 84
6 수산 40 수학 12
reshape2::melt()
1
2
3
4
5
# melt(데이터, id.var = "기준 열",
# measure.vas = "변환 열")
me_m |>
melt(id.vars = c( "이름", "국어"),
measure.vars = c("영어", "수학"))
1
2
3
4
5
6
7
이름 국어 variable value
1 민수 100 영어 80
2 철수 30 영어 50
3 수산 40 영어 10
4 민수 100 수학 72
5 철수 30 수학 84
6 수산 40 수학 12
긴 모양을 넓은 모양으로
tidyr::spread()
1
2
3
me_m2 |>
spread(key="c_key",
value="c_value")
1
2
3
4
이름 국어 수학 영어
1 민수 100 72 80
2 수산 40 12 10
3 철수 30 84 50
reshape2::dcast()
1
2
me_m2 |>
dcast(이름+국어 ~ c_key)
1
2
3
4
이름 국어 수학 영어
1 민수 100 72 80
2 수산 40 12 10
3 철수 30 84 50
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.