데이터 프레임 생성

    아래에 데이터 프레임 관련 함수를 나열했다.

    표 2-19 데이터 프레임 생성 및 관련 함수

    data.frame : 데이터 프레임을 생성한다.

    data.frame(
       # value 또는 tag=value로 표현된 데이터 값. '...'은 가변 인자를 의미한다.
       ...,
       # 주어진 문자열을 팩터로 저장할 것인지 또는 문자열로 저장할 것인지를 지정하는 인자.
       # 기본값은 보통 TRUE. 따라서 이 인자를 지정하지 않으면 문자열은 팩터로 저장된다.
       stringsAsFactors=default.stringsAsFactors()
    )

    반환 값은 데이터 프레임이다.

    str : 임의의 R 객체의 내부 구조(structure)를 보인다.

    str(
       object # 구조를 살펴볼 R 객체
    )

    또한, 데이터 프레임에는 앞에서 살펴본 rownames( ), colnames( ), names( )를 적용할 수 있다. 이들 함수를 사용하면 행과 컬럼(열)에 이름을 부여할 수 있다.

    다음은 데이터 프레임에서 사용하는 문법이다.

    표 2-20 데이터 프레임 사용 문법

    문법

    의미

    d$colname

    데이터 프레임 d에서 컬럼 이름이 colname인 데이터를 접근한다.

    d$colname <- y

    데이터 프레임 d에서 컬럼 이름이 colname인 컬럼에 데이터 y를 저장한다. 만약 colname이 d에 없는 새로운 이름이라면 새로운 컬럼이 추가된다.

    데이터 프레임은 data.frame( )에 ‘컬럼 이름=데이터’ 형태로 데이터를 나열하여 생성한다.

    > (d <- data.frame(x=c(1, 2, 3, 4, 5), y=c(2, 4, 6, 8, 10)))
      x y
    1 1 2
    2 2 4
    3 3 6
    4 4 8
    5 5 10
    

    데이터 프레임의 각 컬럼은 서로 다른 데이터 타입일 수 있다. 다음은 숫자 벡터 x, y에 팩터인 z 컬럼을 추가하는 예다(stringsAsFactor를 지정하지 않으면 문자열이 팩터로 저장된다).

    > (d <- data.frame(x=c(1, 2, 3, 4, 5),
    +                   y=c(2, 4, 6, 8, 10),
    +                   z=c('M', 'F', 'M', 'F', 'M')))
       x  y  z
    1  1  2  M
    2  2  4  F
    3  3  6  M
    4  4  8  F
    5  5 10  M
    

    위에 보인 출력에서는 각 컬럼의 데이터 타입을 보여주지 않아 실제로 어떤 데이터 타입으로 데이터가 저장되는지는 쉽게 알 수 없다. 이 경우 str( )을 사용해 구조를 살펴볼 수 있다.

    > str(d)
    'data.frame': 5 obs. of 3 variables:
    $ x: num 1 2 3 4 5
    $ y: num 2 4 6 8 10
    $ z: Factor w/ 2 levels "F","M": 2 1 2 1 2
    

    이 결과를 보면 z 컬럼이 팩터임을 알 수 있다.

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