R 기초 - 데이터를 직접 만들어보자

데이터프레임을 만들고, 간단한 데이터분석을 해보자!

by 이지섭

데이터프레임이란?


행(row)과 열(Column)로 구성된 사각형 모양의 데이터. 데이터의 크기를 얘기할 때는 두 가지 방식으로 얘기할 수 있다. "Row(행, 케이스)가 몇개에요?" "Column(열, 변수)이 몇 개에요?"

데이터프레임.png 사용되는 다양한 형태의 데이터구조. 출처는 https://statkclee.github.io/data-science/ds-data-structure.html


'데이터가 크다'라는 건 Row가 많거나 Column이 많다는 걸 뜻한다.

Row가 많은 경우 데이터를 불러오는 데 많은 메모리가 필요하고 이에 따라 컴퓨터가 버벅일 수 있다. 반면 Column이 많은 경우에는 고급 분석방법(machine learning)을 활용해야한다. 분석하는 사람 입장에서는 Row보다는 Column의 개수에 예민할 수밖에 없다.



데이터프레임을 만들어 보자.

여러개의 값을 지닌 변수를 만들어보자. 네 명의 학생들이 학생들이 과학, 수학 두 종류의 시험을 봤다고 가정하고 데이터를 만들어보자. 여기서 학생은 row, 시험의 종류는 column이 된다.


science <- c(70, 50, 30, 90)

math <- c(80, 60, 40, 100)


데이터 프레임을 만드는 함수는 다음과 같다.

data.frame(변수1, 변수2)

df_midterm <- data.frame(science, math)

#science와 math 값으로 데이터프레임을 만들어 df_midterm에 새롭게 할당했다.


>df_midterm

science math

1 100 80

2 90 60

3 20 40

4 70 100


df_midterm 실행해보면 row 4개, column 2개짜리 데이터프레임이 만들어진 걸 확인할 수 있다.

여기에 학생들이 몇 반인지를 기록하기 위해 class 변수를 추가로 만들어보자.

그러기 위해선 class 변수를 '새로 만들고' 데이터프레임에 '추가'하면 된다.


class <- c(1, 1, 2, ,)

df_midterm <- data.frame(history, math, class)

#데이터프레임에 class라는 column을 추가완료!


>df_midterm

science math class

1 100 80 1

2 90 60 1

3 20 40 2

4 70 100 2



데이터를 분석해보자.

mean이라는 함수를 사용하면 평균값을 구할 수 있다. 이번 중간고사의 과학과목 평균을 구하려면


> mean(df_midterm$science)

[1] 70

70점인 걸 알 수 있다! 지금은 네 학생의 평균을 구했지만 100명의 학생, 1000명의 학생 평균도 같은 방식으로 구할 수 있다. 전체 코드는 아래!


science <- c(70, 50, 30, 90) #science라는 변수에 여러 값을 지정했다.

math <- c(80, 60, 40, 100) #위와 마찬가지.

data.frame(science, math) #science, math를 column으로 갖는 데이터 프레임을 만들었다.

class <- c(1,1,2,2)

df_midterm <- data.frame(science, math, class)

mean(df_midterm$science) #df_midterm의 science column의 평균값을 구했다.


#마지막 줄에서 $란 해당 데이터프레임 안에 위치한 변수명을 가리킬 때 사용되는 기호다.


매거진의 이전글Oracle Database 설치오류 해결방법