R을 활용한 데이터 시각화




PLOT() 함수
PLOT()은 산점도 뿐만 아니라 일반적으로 객체를 시각화하는데 모두 사용될 수 있는 일반 함수.
일반 함수란 주어진 데이터 타입과 옵션에 따라 여러 종류의 그래프(산점도, 선그래프등)를 그릴 수 있다.

그래픽 옵션
plot()과 같은 그래픽 함수들은 여러가지 파라미터들로 그모양을 다듬을 수 있다.
자세한 내용은 ?par의 도움말을 확인하면 된다.

 옵션

설명 

xlab 

x축의 이름 

ylab 

y축의 이름 

main 

그래프 제목 

pch 

점의 종류 

cex 

점의 크기 

col 

색깔 

 xlim

x좌표축 값의 최대 범위 

ylim 

y좌표축 값의 최대 범위 

type 

그래프의 종류 


type옵션으로 그래프의 종류를 변경할 수 있다.

"l"은 직선, h는 수직선, s는 계단형, o는 점과 선을 overlap해서 그린다. 그외에도 다양한 옵션이 있다.



점(points)
pints()는 점을 그리는 함수이다. plot()을 연달아 호출하는 경우 매번 새로운 그래프가 그려지는 것과 달리 points()는 이미 생성된 plot에 점을 추가로 그려준다.


선(lines)
lines()는 points()와 마찬가지로 plot()으로 새로운 그래프를 그린 뒤 선을 그리는 목적으로 사용된다.


직선(ABLINE)
abline은 y = a + bx 형태의 직선 또는 h=y형태의 고로로 그은 직선 또는 v= y형태의 세로로 그은 직선을 그래프에 추가할 수 있다.


identify()
그래프상에서 특정 점을 클릭하면 클릭된 점과 가장 가까운 데이터의 번호를 표시해준다. 작업을 중단하려면 ESC키를 누른다.



범례(legend)
legend()는 범례를 표시하는데 사용된다. 가장 기본적인 형식은 legend(x, y=NULL, legend)인데, 범례가 보여질 (x,y)좌표를 지정할 수 있고, 사전에 정의된 키워드 중 하나로 범례의 위치를 지정해도 된다.


막대 그래프(Barplot)
흑히 볼 수 있는 막대 모양의 그래프로 다양한 형태로 사용될 수 있다.


히스토그램 Hist()
자료의 분포를 알아보는데 유용한 그래프는 히스토그램이다.


파이 그래프(PIE)
데이터 비율을 알아보는데 적합하다.


모자이크 플롯(MOSAICPLOT)
범주형 다변량 데이터를 표현하는데 적합한 그래프이다. 모자이크 플롯에는 사각형들이 그래프에 나열되며, 각 사각형의 넓이가 각 범주에 속한 데이터의 수에 해당한다. 타이타닉호 생존자의 정보를 담고 있는 Titanic데이터를 사용해 모자이크 플롯을 그려본다.
타이타닉은 table 클래스의 데이터이며 속성은 객실 부분, 성별, 성인인지의여부, 생존여부로 구성되어있다.



산점도 행렬(PAIRS)
산점도 행렬(Scatter Plot Matrix)은 다변량 데이터에서 변수 쌍간의 산점도 행렬을 그린 그래프
다음 코드는 iris 데이터에서 각 종별로 산점도 행렬을 그린다.



등고선 그래프
값이 같은 곳들을 선으로 연결한 등고선을 이용해 데이터를 표시


CHERNOFF FACE DIAGRAM
얼굴의 체르노프 얼굴은 다차원 통계 데이터를 사람의 얼굴 이미지를 이용해 시각적으료 표현하는 방법이다.



GGPLOT2
기본 R 그래픽스에서 제공하는 대부분의 작업을 효과적으로 수행할 수 있는 시각화 기본 패키지이다.
ggplot2의 문법을 구성하는 요소는 다음과 같다.
- 데이터 프레임
- 색상, 크기 같은 외적요소
- 점, 선, 모양 같은 기하학적 요소
- 통계적 처리 방법
- aes에서 사용할 스케일(scale)

위 상태는 ggplot2에서 어떤 데이터를 사용할지만 지정된 상태이다.
어떤 모양의 그래프를 원하는지 입력하지 않았기 때문에 그래프가 출력되지 않는다.

aes(색상, 크기 등의 원하는 디자인) 요소를 추가하면된다.

GEMO_의 종류

abline 

절편과 기울기를 이용하여 그리는 직선 

area 

영역 그림 

bar 

막대그림 

boxplot 

상자그림 

density 

smooth density 

histogram 

히스토그램 

hline/vline 

수평직선/수직직선 

jitter 

점 흐트려 그리기 

line 

x값 순서로 점 연결하여 그리는 직선 

smooth 

smooth line 


동적인 그래프 만들기(GOOGLEVIS)
install.packages("googleVis")
library(googleVis)


ggmap
지도 정보를 표기해주는 라이브러리


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

R을 활용한 데이터 시각화  (0) 2018.01.09
R을 활용하여 데이터 처리하기  (0) 2018.01.08
R의 DataType이해  (0) 2018.01.08
R의 기본 사용법  (0) 2018.01.08

데이터 처리

머신러닝 또는 데이터 마이닝 등의 프로젝트에서 모델을 만드는데 소용되는 시간은 전체 프로젝트의 14%정도이며,
그 중 데이터 전 처리 단계의 소요시간은 다른 단계들에서의 소요시간보다 큰 경우가 많은 작업이다.

  1. 파일 입출력
    일반적인 text 파일을 읽거나 쓴다.

    data = read.table("~.csv", header=TRUE, sep=",",stringsAsFactors=FALSE,comment.char="#",fileEncoding="UTF-8",encoding="CP949")

    ~.csv파일을 읽어 data.frame형태로 저장
    header : TURE이면 헤더 정보 있음
    sep : 필드 구분자를 지정. default필드 구분자는 blank
    stringsASFactor : TRUE이면 문자열을 FACTOR 형태로 저장
    comment.char : 주석의 시작 문자 지정
    fileEncoding : 파일의 인코딩
    encoding : R의 인코딩


    write.table(data,file="~.csv", append=FALSE, quote=TRUE, sep=",", row.names=TRUE)

    data 변수에 저장된 데이터를 ~.csv파일로 저장
    quote : TRUE, 필드의 값을 , 으로 묶음
    sep : 필드의 구분자를 지정. Default 필드 구분자는 blank
    row.names : TURE, 각 행의 이름도 저장


  2. CSV 파일 읽기
    CSV 파일을 읽으려면 read.csv()를 사용한다.
    이 함수는 파일명과 첫째 행이 header인지를 구분하기 위한 파라미터를 받는다.
    read.csv(파일명,header=TRUE)와 같은 형식으로 호출

    처음부터 문자열을 Factor가 아닌 문자열 타입으로 읽어 들이도록 하려면 stringsAsFactors=TRUE를 지정
    나중에 변경하기 위해서 x$name = as.character (x$name)

    na.strings
    NA를 지정하는 문자열을 지정, 디폴트는 NA, 다른 문자열로 NA가 지정되었을 경우 모두 문자열로 반환
    na.strings='NIL'

    1.csv의 내용


  3. 엑셀 파일 읽기 
    xlsx 패키지를 install하여야 한다. library(xlsx)하여 패키지를 불러온다.

    read.xlsx("이름","sheet")이다.

  4. APPLY 함수
    R에서는 다양한 벡터 또는 행렬데이터에 임의의 함수를 적용한 결과를 얻기 위한 apply류의 함수들이 있다. 이들 함수는 벡터, 행렬, 리스트, 데이터프레임에 적용할 함수를 명시하는 형태로, 함수형 언어 스타일에 가깝다. apply,lapply,sapply,tapply,mapply등이 있다.

    APPLY함수 : 행렬의 행또는 열방향으로 특정함수를 적용하며 apply(행렬, 방향, 함수)형태로 호출한다.
    '방향'은 1이면 행 2이면 열이다.



    LAPPLY함수 : 인자로 리스트를 받을 수 있다.





  5. DPLYR패키지
    데이터처리에 특화되어 있는 R 패키지
    데이터사전처리작업을 위해 다음과 같은 기능을 제공
    -Filtering(데이터 추출)
    -Selecting columns(변수선택)
    -Adding new variables(변수추가)
    -Sorting(정렬)
    -Aggregating(집계)


    dplyr의 장점은 처리 속도 뿐만 아니라 가독성이 좋다. 체인(%>%)이라는 것을 이용해 데이터가 어떠한 처리의 흐름을 갖는지 파악하기 쉽게하였다. 그렇기 때문에 내가 만든 처리 구문을 타인에게 전달할 때도 큰 장점을 갖는다.


    filter: 조건 추출




    select: 변수 선택




    mutate : 변수 추가



    arrange : 정렬



    group_by, summarise : 집계
    데이터를 정렬한 뒤, 그룹별 요약 결과 보기

    chain 
     - 여러 명령을 연결해 한 번에 수행할 수 있도록 하는 기능
     - 연결기능은 %>%로 이루어짐.

    데이터 프레임 조작(subset,transform,split)
    데이터 프레임은 가장 보편적으로 사용하는 형태의 데이터타입이다. 

    subset() : 함수를 사용해서 원래 데이터프레임과 선택조건을 주어 조건을 만족하는 일부데이터만 선택할 수 있다.

    transform : 기존 데이터들의 연산 결과를 새로운 열 데이터로 생성하여 기존 데이터프레임에 추가하거나 다른 이름의 데이터프레임으로 저장할 수 있다.

    split : 2번째 인자를 그룹요인(grouping factor)으로 하여 1번째 인자 데이터를 그룹화한 목록으로 생성한다.


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

R을 활용한 데이터 시각화  (0) 2018.01.09
R을 활용하여 데이터 처리하기  (0) 2018.01.08
R의 DataType이해  (0) 2018.01.08
R의 기본 사용법  (0) 2018.01.08

R의 DataType 이해


  1. 스칼라(SCALAR)
    숫자, 문자등의 단일 값을 저장하는 data type

    숫자 : 정수 및 부동소수 지원

    문자열 :
    문자열 데이터를 저장하는 data type

    진리값(Boolean) : TRUE, FALSE판단 &(AND) , |(OR), !(NOT)사용



    NA(결측치) : 만약 데이터에 값이 존재하지 않는다면 NA로 표시함. is.na() 함수로 NA 확인가능


    요인(Factor) : 범주형(Categorical) 변수를 위한 데이터 타입. 미리 정해진 여러 개의 값 중 하나의 값을 가짐



  2. 벡터(VECTOR)
    - 같은 데이터 타입을 갖는 1차원 배열 구조
    - 여러 개의 데이터를 모아서 함께 저장하는 것을 의미
    - c(), seq(), rep() 함수 사용 가능
    - 벡터는 중첩 불가능( 벡터의 한 요소로 또 다른 벡터를 사용할 수 없음, 하나의 벡터로 통합)


  3. 리스트(LIST)
    리스트는 (key,value)형태로 데이터를 저장하는 일종의 배열 기존의 배열과 차이점은 데이터형을 서로 혼합하여 저장할 수 있다.
    리스트는 list(키=값, 키=값,..)형태로 데이터를 나열해 정의한다.



    이처럼 리스트에는 다양한 값들을 혼합해서 저장할 수 있다. 따라서 리스트안에 리스트 삽입이 가능 하다.



    리스트내 데이터 접근 : 위에서 본 바와 같이 리스트를 출력해보면 "$키" 형태로 각 키들이 나열된다.
    데이터는 '리스트 변수명$키'와 같이 접근한다. 또는 각 요소를 순서대로 '리스트변수[[인덱스]]'와 같이 접근 가능하다.


  4. 매트릭스(MATRIX)
    벡터와 마찬가지로 행렬에는 한가지 유형의 스칼라만 저장할 수 있다. 따라서 모든 요소가 숫자인 행렬은 가능하지만
    '1 열은 숫자, 2열은 문자열' 과 같은 형태는 불가능하다.
    행렬은 matrix()를 사용한다. 
    행렬값을 위쪽 행부터 채우고 싶다면 byrow를 사용



    행렬의 각 요소는 행렬이름[행인덱스,열인덱스'로 접근할 수 있다. 이때, 인덱스는 벡터의 경우와 마찬가지로 1부터 시작
    1,2행의 데이터만 추출한경우
    1행, 3행, 1열, 3열의 값만 추출한 경우


    행과 열에 명칭을 부여하고 싶다면 dimnames()를 사용



  5. 데이터 프레임(DATA FRAME)
    - 각기 다른 데이터 타입을 갖는 컬럼으로 이루어진 2차원 테이블 구조
    - 행렬과 동일한 형태이나 행렬과 달리 다양한 변수, 범주등을 표현 가능
    - 서로 다른 컬럼은 데이터 타입이 다를 수 있음
    - data.frame() 함수를 이용하여 생성하며 각 컬럼, 행의 이름을 지정



  6. 데이터 프레임의 각 열은 $변수명으로 접근할 수 있다. 행이나 열의 인덱스를 사용해서도 접근 가능



    데이터 프레임의 행 이름, 열 이름은 각각 rownames(), colnames()함수로 지정가능




  7. TYPE 판별 및 변환
    is.factor, is.numeric(숫자벡터), is.character(문자열 벡터), is.matrix, is.data.frame등의 "is.*"형태의 함수들을 사용해
    데이터의 타입을 확인할 수 있다.


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

R을 활용한 데이터 시각화  (0) 2018.01.09
R을 활용하여 데이터 처리하기  (0) 2018.01.08
R의 DataType이해  (0) 2018.01.08
R의 기본 사용법  (0) 2018.01.08

R의 기본 사용법


  • R은 1줄씩 처리하는 인터프리터 언어

  • >는 명령 프롬프트. 원하는 명령을 치고 엔터로 실행

  • R은 대소문자를 구분

  • 만약 이전에 했던 작업을 다시 수행하고 싶으면 ↑키 사용

  • 종료하려면 q()

  • 작업하는 내용을 저장할 작업 디렉토리를 지정하고 진행하는 것이 좋음.


  1. 산술 연산자

  2.  기호

    의미 

    +

     덧셈

     -

     뺄셈

     *

     곱셈

     /

     나눗셈

     %/%

     정수나눗셈

     %%

     나머지

     ^.**

    거듭제곱 




  3. 주석문
    주석문은 실행되지않으며, #으로 명시한다.




  4. 세미콜론
    여러 개의 식을 한줄레 쓸 수 있으며, ; 로 명시한다.




  5. 주요 수학 함수

  6.  함수

    설명 

    abs(x) 

    x의 절대값 

    ceiling(x),floor(x),trunc(x) 

    버림 함수들로 각각 x보다 큰 수중 가장 작은 정수

    x보다 작은 수 중 가장 큰 정수

     0과 x사이의 가장 큰 정수 출력 

    round(x,digits=y) 

    x의 반올림 함수들로 각각 x의 소수점 y자리에서 반올림 

     exp(x)

    지수함수 

    log(x), log10(x), log2(x),logb(x,base=y) 

    로그 함수로 각각 밑이 자연대수 e,10,2,x 

    sign(x) 

    부호함수 

    sqrt(x) 

    제곱근 함수 

    factorial(x) 

    x의 계승 출력(x!) 

    choose(x,y) 

    x에서 y를 고르는 조합의 수 출력(xCy) 



  7. history()
    지금까지 입력한 명령을 목록으로 표시




  8. 변수에 값 저장
    변수에 값을 할당할 때 <-, <<-, = 사용




  9. 도움말
    '?' 뒤에 찾고자 하는 명령어를 입력하거나 help 형태로 입력하여 사용 할 수 있다.




  10. 디렉토리 설정
    작업하는 내용을 저장하거나 기본적으로 사용할 디렉토리를 지정하고 작업
    getwd(), setwd("C:/desktop")




  11. 패키지 사용
    INSTALL.PACKAGES("패키지명")
    install.packages() 명령어를 입력하면 mirror를 선택하는 화면이 나오는데 Korea나 희망하는 mirror를 선택




  12. 스크립트
    R console창에서 입력할때 여러 개 명령을 반복해서 입력할 때 번거롭다. 그럴 때 R 스크립트 기능을 활용한다.
    메뉴 -> 파일 -> 새 스크립트 
    R 편집기에 입력한 명령을 실행 할 때에는 블럭을 설정한 다음 CTRL+R을 누른다.
    블록 설정하지 않으면 커서가 있는 행의 명령이 실행


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

R을 활용한 데이터 시각화  (0) 2018.01.09
R을 활용하여 데이터 처리하기  (0) 2018.01.08
R의 DataType이해  (0) 2018.01.08
R의 기본 사용법  (0) 2018.01.08

+ Recent posts