R/Exploratory data analysis

1. R program on mac

Abokadoh 2023. 3. 10. 15:29

EDA 수업에서 R프로그램을 처음 접하게 되었다. 파이썬과 꽤나 비슷해보이는 구조이다.

 

허나 Mac버전에서의 R은 한국어를 지원하지 않기 때문에 극복해야 할 부분이 많다.

 

1. R program's panes, windows, 화면 설정

R 에서의 window는 pane이라 불리며 개인의 기호에 맞게 pane의 위치를 설정할 수 있다. 중앙 상단에 창문(pane)을 선택하면 설정할 수 있다.

 

나는 위와 같은 형식을 유지하겠다.

 

  • 왼쪽 상단 Untitle1(제목) pane :  가장 많이 보게 될, 직접 코딩을 하는 창이다.
  • 왼쪽 하단 console pane : 코딩의 결과를 볼 수 있다. 원하는 단락의 결과를 보려면 해당 코드를 드래그하고 cmd + enter를 누르면 된다. 
  • 오른쪽 상단 Environment : 입력된 변수들을 확인할 수 있다.
  • 오른쪽 상단 History : 코딩 history를 볼 수 있다.
  • 왼쪽 하단 Files : data를 import할 때 사용하게 될 것 같다.

 

2. Console text 전체 지우기 

처음 R프로젝트를 열면 console에 version checking을 위한(?) 텍스트들이 반환되는데, Ctrl + L로 지울 수 있다.

 

3. Run

R에서의 코드 Running은 Jupyternote에서의 commandkey와 같이 cmd + enter 다.

1+1을 입력하고 cmd + enter

console에 output이 잘 반환된 것을 확인할 수 있다.

 

4. 연산자 =, <-

R에도 = 연산자가 존재한다. = 연산을 통해 변수지정이 가능하고 =의 대안으로 <-도 있다. 

 

우측의 Environment pane에서 변수가 잘 지정됐음을 확인할 수 있다.

 

5. library() / library 열기

R에서 ggplot2 library를 열어보자.

 

만약 ggplot2가 설치 되어 있지 않은 PC라면,

# <in>
install.packages("ggplot2")

 

 을 통해 ggplot2 를 설치할 수 있다. library() 함수는 library를 불러오는 함수이다.

 

# <in>
library(ggplot2)

ggplot2가 잘 열렸으면 Console에 이렇게 반환된다. (잘 안됐으면 error 어쩌고가 반환될 것임)

 

그럼 ggplot2가 잘 불러졌는지 확인하기 위해 ggplot2에 내장되어있는 data인 mpg 자료를 head()함수를 사용해 불러보겠다.

ggplot2를 불러왔을 때와 마찬가지로 console에 head(mpg)와 함께 data가 반환된다. head()함수를 사용했기 때문에 전체 데이터가 아닌 일부만이 반환된다.

6개의 variables가 더 있다고 안내된다.

그리고 아래에는 각 variables의 자료형에 대해서 나와있다. trans column 은 chr type, cty column은 int type인 것을 확인할 수 있다.

 

다음 각 variables에 대한 설명이다.

  • cty and hwy record miles per gallon (mpg) for city and highway driving.
  • displ is the engine displacement in litres.
  • cyl is the number of cylinders
  • drv is the drivetrain: front wheel (f), rear wheel (r) or four wheel (4).
  • model is the model of car. There are 38 models, selected because they had a new edition every year between 1999 and 2008.
  • class is a categorical variable describing the “type” of car: two seater, SUV, compact, etc.

data에 대한 파악을 완료했으면 이제 ggplot()함수를 사용하여, 그래프를 부여하고 geom함수들을 사용해 그래프를 시각화 해보자.

# <in>
ggplot(mpg, aes(x = displ, y = hwy)) +
  geom_point()

R에서는 + 연산을 통해 코드를 이어갈 수 있다.

1. geom_point() - 산점도 그래프 그리기

geom_point() 함수는 산점도 그래프로 data를 시각해준다. 

첫 번째 인자로 data name, aes 인자는 aes는 aesthetic mappings로 시각화에 어떠한 요소를 사용할 것인지를 입력할 수 있다.

 

위 코드에서는 aes안에 x,y에 할당할 각각의 변수를 지정했다.

 

# <in>
ggplot(mpg, aes(x = cty, y = hwy)) +
  geom_point()

이번엔 aesthetic mappings에 x변수를 cty로 변경하여 그래프를 시각화해보았다.  이렇게 하면 cty(도심지 내 연비)와 hwy(고속도로 내 연비) 간 상관관계를 파악할 수 있을 것이다.

cty와 hwy간 산점도 그래프를 확인할 수 있다.

 

참고 ) aesthetic mapping에서는 x와 y를 명시하지 않고 생략하는 것도 가능하다. 

# <in>
ggplot(mpg, aes(model, manufacturer)) +
  geom_point()

보는 것과 같이 x,y를 명시하지 않았지만, 생략이 가능하였고. character 변수도 x,y에 넣을 수 있는 것을 확인할 수 있다.

다만 이렇게 카테고리가 많은 경우 가시성이 좋지는 않다.

 

이번엔 mpg data가 아닌 diamonds data를 활용하여 연습을 해보자.

# <in>
ggplot(diamonds, aes(x = carat, y = price)) +
  geom_point()

x좌표에 carat(다이아몬드 캐럿), y좌표에 price(가격)을 두고 산점도 그래프트를 그려보겠다.

carat 과 price의 관계를 산점도 그래프를 통해 확인할 수 있다.

 

다음은 economics data를 사용해 geom()함수 내 다른 그래프를 경험해보자.

 

2. geom_line() - 선그래프 그리기

# <in>
ggplot(economics, aes(x = date, y = unemploy)) +
  geom_line()

economics 의 date, unemploy 변수는 연속형 data여서 선 그래프로 시각화했을 때 효과적이다.

다음은 히스토그램 그래프를 그려보자.

 

3. geom_histogram()

# <in>
ggplot(mpg, aes(x = cty)) +
  geom_histogram()

히스토그램에서는 한 가지 변수만 입력이 가능하다고 한다. 그리고 geom_histgram을 부를 때 따로 인자를 주지 않으면 default값으로 그래프를 반환한다는 메세지를 console를 통해 확인할 수 있다.

 

 

 

4. dim() - data의 차원 파악하기

# <in>
dim(mpg)

# <out>
[1] 234  11

dim()함수를 사용하여 data의 shape을 확인할 수 있다. 

mpg data는 234행 11열 형태의 data이다.