상세 컨텐츠

본문 제목

[개미의 걸음 ADsP 3과목] R 데이터의 구조 - ④Data Frame(데이터 프레임)

자격증/ADsP

by IT개미 데이터 2020. 7. 25. 17:17

본문

728x90

데이터 프레임[data.frame()]

2차원 구조로 행렬처럼 행과 열로 구성된 형태로 강력하고 유연한 구조

  • 행렬은 하나의 데이터 유형만을 가질 수 있지만 데이터 프레임은 여러가지 데이터 유형을 가짐

  • 데이터 프레임에서 하나의 열은 벡터처럼 하나의 데이터 유형만 가짐

  • 데이터 프레임의 리스트의 원소는 벡터 또는 요인

  • 데이터 프레임에 들어갈 벡터의 길이는 동일해야 한다.

  • 데이터 프레임은 표 형태의 데이터 구조이며, 각 열은 서로 다른 데이터 형식을 가질 수 있음

  • 데이터 프레임은 엑셀의 데이터 시트와 같은 역할

  • 텍스트, CSV, 엑셀, DB형태로 되어있는 외부데이터를 R로 불러오면 '데이터프레임'구조를 가짐

데이터 프레임은 강력하고 유연한 구조로 SAS의 데이터셋을 모방해서 만든 구조

  • 엑셀의 시트와 비슷한 역할
  • 엑셀 시트에서는 열에 대한 자료 형태를 각각 구분해 주어야하는 번거러움이 있다.
  • sqldf를 이용할 때 RDBMS의 table 또는 엑셀의 피벗처럼 사용할 수 있는 테이블
  • R의 데이터프레임에서는 각각의 열에 대해 문자형인지 수치형인지 자동으로 구분되어 편리
  • 메모리상에서 구동
Argument 설    명
... 벡터나 행렬 지정
stringsAsFactors 데이터 유형이 문자형인 경우, 데이터 프레임을 생성할 때 기본적으로 Factor로 변경
이것을 원하지 않는 경우, FALSE를 지정하면 문자형이 그대로 유지

<데이터 프레임 예>

※ str(DF1) : 지정된 데이터(DF1)가 어떠한 구조로 형성되어 있는지 알려주는 함수
※ stringsAsFactors를 지정하지 않아 문자형의 데이터 유형을 가진 "gender"가 자동으로 facfor로 변경되었음
   gender는 두 개의 집단으로 인식된 범주형 자료가 됨

 

<데이터 프레임 예>

※  stringAsFactors를 FALSE로 지정할 경우 데이터 유형이 그대로 문자형으로 유지됨
※ DF1,DF2 모두 5행 4열의 2차원 구조를 갖는 데이터프레임

# NA가 있는 행 삭제

더보기

na.omit(데이터프레임명)

 

 

 

 

데이터 프레임의 속성

   1. 행의 개수와 행의 이름

nrow( ) 행의 개수를 알려주는 함수. [행렬에서만 사용가능]
NROW( ) 행의 개수를 알려주는 함수. [행렬과 벡터에서 사용가능]
rownames( ) 행의 이름을 알려주는 함수. 기본적으로 행의이름은 문자형 [1부터 시작]
행의 이름을 변경하고 싶을 때는 c( )함수나 paste( )함수 등을 사용

 

   2. 열의 개수와 열의 이름

ncol( ) 열의 개수를 알려주는 함수 [행렬에서만 사용가능]
NCOL( ) 열의 개수를 알려주는 함수 [행렬과 벡터에 사용가능]
colnames( ) 열의 이름을 알려주는 함수, 기본적으로 열의 이름은 문자형
열의 이름을 변경하고 싶을 때는 c()함수나 paste()함수 등을 사용

 

   3. 차원 & 차원의 이름

dim( ) 행의 개수와 열의 개수를 한번에 알려주는 함수
첫번째 나오는 숫자가 행의 개수, 두번째 나오는 숫자가 열의 개수를 의미함
dimnames( ) 행의 이름과 열의 이름을 한번에 알려주는 함수
첫번째 나오는 이름이 행의 이름, 두번째로 나오는 이름이 열의 이름을 의미
차원의 이름은 리스트[list] 형태로 되어 있음

 

   4. 데이터의 구조

str( ) 지정된 데이터가 어떤 구조로 형성되었는지 알려주는 함수
데이터의 형태, 행의 개수, 열의 개수, 변수명, 데이터의 유형 등을 알려줌
데이터를 분석하기 전에 데이터가 어떤 구조로 이루어졌는지 확인하는 것이 중요

 

 

 

데이터 프레임 합치기

데이터 프레임 두 개 합치기 rbind(df1,df2) 열의 개수와 열 이름이 동일
cbind(df1,df2) 행의 개수가 동일해야 함
두 개의 데이터 프레임을 동일한 변수 기준으로 합치기 merge(df1,df2, by="DF_name") df1과 df2의 공통 열의 이름을 기준으로 데이터셋을 병합

 

728x90

관련글 더보기

댓글 영역