더북(TheBook)

이 절에서는 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( )를 살펴볼 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.