더북(TheBook)

데이터 프레임 생성

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

표 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 컬럼이 팩터임을 알 수 있다.

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