728x90

R은 통계프로그래밍 언어로 일반인이 사용하기 쉽게 만든 언어이다.

그러나 필자는 프로그래머이고 비 프로그래머의 인식으로 접근하기 힘든면이 있다.

강의 또한 그러하다. 강의 곳곳에 프로그래머적인 시선이 들어있으니 참고하여 필요없으면 넘겨라.


참고:

[개발환경 셋팅하기]R설치 및 환경변수 등록-(1)

[개발환경 셋팅하기]RStudio설치-(2)

[개발환경 셋팅하기]RStudio프로젝트 만들기-(3)


이제 R 문법과 데이터를 추가,삭제,저장 하는 방법을 알았으니 그래프로 출력하는 가장 기본적인 방법을 알아보자.



데이터는 data.go.kr에서 다운로드받은 2016년_사고유형별_월별_교통사고통계_20161019.csv이다.

여러분도 이걸 사용해도 좋고 만약 다른걸 쓰고싶다면 당연히 다른걸 써도 좋다.

해당 그래프의 1월달을 6개까지만 출력해보도록하자.


aci = read.csv('2016년_사고유형별_월별_교통사고통계_20161019.csv')

plot(head(aci$X1월))


일단 csv를 읽어서 데이터를 저장하고 그중에서 1월달만 출력하였다. 결과는 과연 어떻게 됬을까?


1월달의 상위 6개의 데이터를 추출해냈다.

만약 여러개를 동시에 출력하고 싶다면어떨까? 이때 사용하는게 screen이다.


screen


여러분은 screen이라는 명령어를 사용한적은 없다.

그러나 사실 screen한개를 이미 점유하고 있다는건 명백한 사실이다.

한화면에 두개 이상을 띄우기 위해서는 이미 쓰고있는 screen을 분할해주는 작업이 필요하다.

그게 바로 split이다. 이번에는 1월부터 6월까지의 데이터를 한 화면에 분할해서 띄어보도록 하겠다.


aci = read.csv('2016년_사고유형별_월별_교통사고통계_20161019.csv')

split.screen(c(2,3))

for(i in seq(6)){

  screen(i)

  plot(head(aci[[i+2]]))

}

close.screen(all=TRUE)


이 때 필요한건 split.screen이다. split.screen은 뒤에 넣은 벡터의 크기대로 창을 나눈다.

2,3으로 나누기로 했으므로 구역이 2,3이 된다.

그다음에 중요한게 plot을 사용하기 전에는 사용할 창을 선택해야한다. 이 때 사용하는게 screen이다.

screen1번을 사용하고 plot을 출력한후 다른 screen을 선택하고 출력하고를반복해야한다.

그리고 마지막에 close.screen(all=TRUE)를 해준다.

그래야 실행도중에 스크린의 변경을 적용할 수 있다. 반드시 해준다.



총 6개가 출력되는데 출력순서는 위에서 아래 우선, 왼쪽에서 오른쪽 순서대로 간다.

1 3 5

2 4 6

순서로 출력된다는 것이다.

범주형 데이터가 아닐경우(factor형이 아닐경우) 기본적으로 점데이터로 표시된다.

factor형일경우 막대로 표시되게 된다. 한번 factor형을 출력해보자.


aci = read.csv('2016년_사고유형별_월별_교통사고통계_20161019.csv')

split.screen(c(1,2))

for(i in seq(2)){

  screen(i)

  plot(head(aci[[i]]))

}

close.screen(all=TRUE)


처음 분류1과 분류2는 factor이므로 막대로 표시되게 된다.



type


그래프를 그릴때 점그래프의 경우 type을 이용해서 그래프의 표시형식을 변경할 수 있다.

타입은 여러가지가 있으며 o,b,s 타입을 각각 보자.


aci = read.csv('2016년_사고유형별_월별_교통사고통계_20161019.csv')

split.screen(c(1,2))

for(i in seq(2)){

  screen(i)

  plot(head(aci[[i+2]]),type="o")

}

close.screen(all=TRUE)



o타입의 경우 점그래프를 모두 선으로 잇게 된다.


aci = read.csv('2016년_사고유형별_월별_교통사고통계_20161019.csv')

split.screen(c(1,2))

for(i in seq(2)){

  screen(i)

  plot(head(aci[[i+2]]),type="b")

}

close.screen(all=TRUE)



b타입의 경우 선으로 모두 잇되 점을 완전하게 잇지는 않는다.


aci = read.csv('2016년_사고유형별_월별_교통사고통계_20161019.csv')

split.screen(c(1,2))

for(i in seq(2)){

  screen(i)

  plot(head(aci[[i+2]]),type="s")

}

close.screen(all=TRUE)



s타입의 경우 막대그래프와 비슷한 형태로 추세를 볼 수 있게 된다.


'Programming > R' 카테고리의 다른 글

[R-22]그룹화(plyr)  (0) 2017.11.20
[R-21]산포도 그리기  (0) 2017.11.20
[R-19]팩터(factor)  (0) 2017.11.19
[R-18]R데이터 읽기,쓰기(data,Rdata)  (0) 2017.11.19
[R-17]파일 읽기,쓰기(json)  (0) 2017.11.19

+ Recent posts