데이터프레임을 만들고, 간단한 데이터분석을 해보자!
행(row)과 열(Column)로 구성된 사각형 모양의 데이터. 데이터의 크기를 얘기할 때는 두 가지 방식으로 얘기할 수 있다. "Row(행, 케이스)가 몇개에요?" "Column(열, 변수)이 몇 개에요?"
'데이터가 크다'라는 건 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의 평균값을 구했다.
#마지막 줄에서 $란 해당 데이터프레임 안에 위치한 변수명을 가리킬 때 사용되는 기호다.