반응형
데이터프레임의 여러 열을 합쳐서 변수와 값으로 만드는 방법을 알아봅시다. 말이 좀 어렵죠? 그림으로도 준비했습니다.
왼쪽 데이터는 다섯 학생의 성별과 시험성적입니다. 네 과목의 시험성적인데요. 오른쪽 처럼 과목이라는 열과 점수라는 열로 바꿔보겠습니다. 오른쪽 처럼 바꾸면 데이터를 다루기가 편해집니다.
먼저 패키지를 하나 설치하고 불러옵시다. reshape2 라는 패키지입니다. 이 패키지 안에 있는 melt 함수를 사용할 겁니다.
#패키지 설치
install.packages("reshape2")
#패키지 불러오기
library(reshape2)
아래와 같이 데이터를 입력합시다.
ID=c(1,2,3,4,5)
SEX=c('M','M','F','F','F')
ENG=c(65,55,45,95,78)
MATH=c(89,88,87,46,65)
CHEMISTRY=c(75,58,58,96,32)
PHYSICS=c(58,70,100,99,87)
df=data.frame(ID,SEX,ENG,MATH,CHEMISTRY,PHYSICS)
ID와 SEX는 그대로 구도, 나머지를 변형할 것입니다. melt 함수를 아래와 같이 사용합니다.
df_melt=melt(df,id.vars=c('ID','SEX'))
결과는 아래와 같습니다.
> df_melt
ID SEX variable value
1 1 M ENG 65
2 2 M ENG 55
3 3 F ENG 45
4 4 F ENG 95
5 5 F ENG 78
6 1 M MATH 89
7 2 M MATH 88
8 3 F MATH 87
9 4 F MATH 46
10 5 F MATH 65
11 1 M CHEMISTRY 75
12 2 M CHEMISTRY 58
13 3 F CHEMISTRY 58
14 4 F CHEMISTRY 96
15 5 F CHEMISTRY 32
16 1 M PHYSICS 58
17 2 M PHYSICS 70
18 3 F PHYSICS 100
19 4 F PHYSICS 99
20 5 F PHYSICS 87
이렇게 바꾸면 뭐가 좋냐구요? 대표적인 예는 아래와 같습니다. 이런 모형식을 사용할 수 있습니다.
boxplot(value~variable,df_melt)
반응형
'R 주제 > R 기초 및 통계 강의' 카테고리의 다른 글
[R강의] 157. 벡터의 오름차순, 내림차순 정렬 하는 방법 (sort) (0) | 2023.04.26 |
---|---|
[R강의] 156. 결측치를 확인하는 두가지 함수 (complete.cases, is.na) (0) | 2023.04.25 |
[R강의] 154. 문자열을 다른 문자열로 대체하기 (sub, gsub) (0) | 2023.04.08 |
[R강의] 153. 함수에 인자를 여러 조합으로 입력하는 방법 (mapply) (0) | 2023.04.07 |
[R강의] 152. 벡터의 그룹별로 함수 적용하기 (tapply) (0) | 2023.04.05 |
댓글