데이터 프레임 생성
아래에 데이터 프레임 관련 함수를 나열했다.
data.frame : 데이터 프레임을 생성한다. |
data.frame( # value 또는 tag=value로 표현된 데이터 값. '...'은 가변 인자를 의미한다. ..., # 주어진 문자열을 팩터로 저장할 것인지 또는 문자열로 저장할 것인지를 지정하는 인자. # 기본값은 보통 TRUE다. 따라서 이 인자를 지정하지 않으면 문자열은 팩터로 저장된다. stringsAsFactors=default.stringsAsFactors() ) 반환 값은 데이터 프레임이다. |
str : 임의의 R 객체의 내부 구조(structure)를 보인다. |
str( object # 구조를 살펴볼 R 객체 ) |
또한, 데이터 프레임에는 앞에서 살펴본 rownames( ), colnames( ), names( )를 적용할 수 있다. 이들 함수를 사용하면 행과 컬럼(열)에 이름을 부여할 수 있다.
다음은 데이터 프레임에서 사용하는 문법이다.
문법 |
의미 |
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 컬럼이 팩터임을 알 수 있다.