brunch

You can make anything
by writing

C.S.Lewis

by 이지섭 Jan 24. 2021

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

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

데이터프레임이란? 


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

사용되는 다양한 형태의 데이터구조. 출처는 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의 평균값을 구했다. 


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


매거진의 이전글 나도 섹시한 데이터 과학자가 되고 싶다
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari