이 절에서는 reshape2 패키지에 포함된 french_fries 데이터를 통해 melt( )와 cast( )의 역할에 대해서 알아본다. french_fries는 2014년 아이오와 주립대학교Iowa State University에서 프렌치프라이를 만드는 식용유가 프렌치프라이의 맛에 어떤 영향을 주는지 조사한 결과를 저장하고 있는 데이터다. 다음은 이 데이터의 일부를 보여준다.
> head(french_fries)
time treatment subject rep potato buttery grassy rancid painty
61 1 1 3 1 2.9 0.0 0.0 0.0 5.5
25 1 1 3 2 14.0 0.0 0.0 1.1 0.0
62 1 1 10 1 11.0 6.4 0.0 0.0 0.0
26 1 1 10 2 9.9 5.9 2.9 2.2 0.0
63 1 1 15 1 1.2 0.1 0.0 1.1 5.1
27 1 1 15 2 8.8 3.0 3.6 1.5 2.3
french_fries 데이터의 각 컬럼의 의미는 다음과 같다.
컬럼 |
의미 |
time |
몇 주차 실험인가 |
treatment |
사용한 식용유의 종류 |
subject |
실험 대상자 |
replicate |
같은 내용을 여러 번 측정했을 때, 이 측정이 몇 번째 반복에 해당하는가. 예를 들어, 앞서 보인 french_fries의 1, 2행은 1번 식용유로 조리한 프렌치프라이를 3번 실험 대상자에게 맛보게 했을 때의 결과들로 각각 첫 번째 맛을 물어봤을 때의 응답과 두 번째 물어봤을 때의 응답을 담고 있다. |
potato |
감자 맛 |
buttery |
버터 맛 |
grassy |
풀 맛 |
rancid |
신맛 |
painty |
안 좋은 냄새 |
french_fries의 각 행을 보면 한 행에 여러 측정치가 여러 컬럼으로 나열된 것을 볼 수 있다. 따라서 french_fries 데이터는 이미 cast( )된 형태의 데이터에 해당한다. 다음 절에서는 melt( )를 사용해 여러 컬럼으로 표현된 측정치를 id, variable, value의 컬럼을 사용해 여러 행으로 표현해본다. 그 다음 이를 다시 원래 형태로 바꾸는 cast( )를 살펴볼 것이다.