R 할줄 R지? #7 - 2차원 다루기, 데이터프레임(Data Frame)

    매트릭스와의 차이점


    데이터 프레임에 배우기에 앞서 같은 2차원 데이터 주고인 매트릭스와의 차이점을 다시 한번 상기해보도록 하겠다. 


    매트릭스

    동일한 데이터 구조만 허용


    데이터 프레임

    다양한 데이터 구조의 허용



    데이터 프레임은 쉽게 엑셀을 머리속에서 떠올리면 된다. 엑셀에서 우리가 열에 저마다 다른 타입의 데이터를 넣을 수 있다. 


    번호

    이름

    몸무게

    1

    홍길동

    180

    70

    2

    고길동

    170

    70

    3

    둘리

    150

    60

    4

    또치

    150

    50


    위와 같은 숫자, 문자형 등이 섞여 있는 2차원 데이터 구조가 데이터 프레임이며, 매트릭스는 숫자 혹은 문자형 등의 한가지 타입으로만 통일되어 있는 차이가 있다.



    데이터 프레임 생성


    위의 테이블 예제를 토대로 데이터 프레임을 생성해보도록 하자


    > numbers <- c(1,2,3,4)

    > numbers

    [1] 1 2 3 4

    > names <- c("honggildong","gogildong","dully","ddochi")

    > names

    [1] "honggildong" "gogildong"   "dully"       "ddochi"     

    > height <- c(180,170,150,150)

    > height

    [1] 180 170 150 150

    > weight <- c(70,70,60,50)

    > weight

    [1] 70 70 60 50


    우선 위와 같이 컬럼들을 생성한다. 


    > member.info <- data.frame (numbers,names,height,weight)

    > member.info

      numbers       names height weight

    1       1 honggildong    180     70

    2       2   gogildong    170     70

    3       3       dully    150     60

    4       4      ddochi    150     50


    data.frame 인자에 각각의 벡터값들을 넣어주며, 인자로 전달하는 변수명은 데이터 프레임에서 컬럼명이 된다. 



    값 가져오기


    특정 컬럼명의 데이터를 모두 가져오기

    > member.info[,"height"]

    [1] 180 170 150 150


    마찬가지로 특정 컬럼명의 데이터를 모두 가져오기

    > member.info["height"]

      height

    1    180

    2    170

    3    150

    4    150


    컬럼의 위치값을 이용하여, 데이터를 가져오기

    > member.info[,c(1,2)]

      numbers       names

    1       1 honggildong

    2       2   gogildong

    3       3       dully

    4       4      ddochi


    행의 위치값과 컬럼의 위치값을 이용하여 데이터를 가져오기

    > member.info[c(1:3),c(1,3,4)]

      numbers height weight

    1       1    180     70

    2       2    170     70

    3       3    150     60



    여기서 참고로, 컬럼명으로 데이터를 가져올 때, 둘다 모두 가져오는 방식을 보여주지만 첫번째는 가로로 순서대로 나타나는 전형적인 벡터 모양을 보여주고 있고, 하단은 데이터 프레임 형태로 보여주는 것을 알 수 있다. 데이터를 벡터로 출력하고 싶으면 첫번째, 데이터 프레임으로 출력하고 싶으면 두번째 방식을 사용하면 된다.



    이전자료


    댓글

    Designed by JB FACTORY