데이터 프레임 만들기
1. 데이터 프레임
데이터 프레임은 가장 많이 사용되는 데이터의 형태입니다. 행과 열로 구성된 사각형 모양의 표처럼 생겼습니다. 데이터 프레임의 열은 일반적으로 속성을 나타내며 컬럼(Column), 변수라고도 불립니다. 행은 데이터 한 개체에 대한 정보를 나타냅니다.
데이터를 처리할 때 데이터가 크다는 말은 행이 많다는 이야기 일 수도 있고 열이 많다는 이야기 일 수도 있습니다.
행이 많아지는 것은 100명의 데이터를 분석하다가 10만명의 데이터를 분석하는 것으로 비유할 수 있습니다. 이러한 상황에서 우리는 컴퓨터가 느려지고 심한 경우에는 데이터를 아예 불러오지도 못하는(!) 상황에 놓이기도 합니다. 이 문제를 해결하려면 더 성능이 좋은 장비를 구축하거나, 분산 처리 기술, 클라우드 서비스를 활용할 수 있습니다. 데이터의 행이 많아지더라도 분석 기술은 크게 달라지지 않습니다.
열이 많아지는 것은 변수가 늘어나는 것을 의미합니다. 데이터 분석은 변수들의 관계를 통해서 의미있는 결과를 도출합니다. 변수들끼리 조합하여 새로운 변수들을 만들기도 합니다. 이러한 측면에서 데이터의 열이 증가하게 된다면 조합할 수 있는 경우의 수가 기하급수적으로 늘어나게 됩니다. 그래서 더 복잡한 분석 방법을 도입해야 할 필요성이 생기게 됩니다.
이러한 측면에서 데이터의 행이 많은 것보다 열이 많은 것이 데이터 분석에서는 더 중요합니다.
2. 데이터 프레임 만들기
아래와 같은 데이터 프레임을 만들어 보겠습니다.
이름 | 영어 점수 | 수학 점수 |
---|---|---|
KIM | 100 | 80 |
LEE | 80 | 90 |
PARK | 70 | 100 |
KANG | 90 | 90 |
1. 변수 생성
네 명의 이름, 영어점수, 수학점수를 각각 담은 변수를 생성합니다.
name <- c("KIM","LEE","PARK","KANG")
english <- c(100, 80, 70, 90)
math <- c(80, 90, 100, 90)
2. 변수로 데이터 프레임 만들기
df_exam <- data.frame(name, english, math)
df_exam
## [1] name english math
## [1] KIM 100 80
## [1] LEE 80 90
## [1] PARK 70 100
## [1] KANG 90 90
이때 새로운 변수를 추가 할 수도 있습니다. 국어 점수를 추가해 보겠습니다.
korean <- c(90, 80, 85, 95)
df_exam <- data.frame(name, english, math, korean)
df_exam
## [1] name english math korean
## [1] KIM 100 80 90
## [1] LEE 80 90 80
## [1] PARK 70 100 85
## [1] KANG 90 90 95
데이터 프레임 내에 있는 변수에 접근할 때에는 $ 기호를 사용합니다.
df_exam$english
## [1] 100 80 70 90
데이터 프레임을 한번에 만들 수도 있습니다. data.frame( ) 함수 안에 변수와 값을 나열해서 한 번에 만들 수 있습니다.
df_exam2 <- data.frame(name = c("KIM","LEE","PARK","KANG"),
english = c(100, 80, 70, 90),
math = c(80, 90, 100, 90),
korean <- c(90, 80, 85, 95))
df_exam2
## [1] name english math korean
## [1] KIM 100 80 90
## [1] LEE 80 90 80
## [1] PARK 70 100 85
## [1] KANG 90 90 95
// 참고자료
김영우, 『쉽게 배우는 R 데이터 분석』, 이지스 퍼블리싱, 2019
이영호, "확률과통계" 가천대학교, 2019.03.21