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

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