파이차트 안에 글자를 넣는 방법입니다. 사실 ggplot2로 하면 다 되긴 하는데 정교하게 만들고 싶다면 수학을 쓸 수 있다는 걸 보여드리고 싶어서 포스팅을 합니다. 약간 뻘짓이지만 이런 방법도 있다는 것도 구경 한 번 해보셨으면 합니다. 사실 시각화는 ppt로 만드는게 사실 제일 예쁘고 정밀하게 글자를 넣을 수 있기 때문에 코딩으로는 과도하게 그래프에 집착할 필요가 없습니다. ggplot2로 파이차트 안에 글자 넣기 먼저 간단한 방법은 ggplot2의 기능을 이용하는 것입니다. 간단하게 원 안에 글자를 넣을 수 있습니다. geom_text()를 이용하면 됩니다. 파라미터는 aes와 position 파라미터를 채우는게 기본입니다. aes에는 글자로 만들 값을 넣어주고 poistion에는 글자를 넣을 위치..
파이차트는 범주형 변수에 대한 상대 도수를 원그래프의 형태로 시각화하는 경우에 사용하는 함수입니다. 보통 뉴스에서 통계로 퍼센트를 확인할 때 많이 사용하는 차트입니다. R에서 그릴 때 값만 작성해도 되지만 의미있는 시각화를 위해서는 라벨링을 해주어야 합니다. 즉, 반드시 필요한건 딱 두가지입니다. 값을 나타내는 수치형 변수와 값의 라벨링을 위한 범주형 변수가 필요합니다. 그 나머지는 옵션에 해당합니다. 기본 라이브러리로 파이차트 그리기 파이차트를 그리려면 R에 내장되어 있는 pie라는 함수를 쓰면 됩니다. v = c(23,15,5) k = c('1st','2nd','3nd') 먼저 값만 적용해보겠습니다. pie(x=v) 라벨을 벡터의 인덱스로 표시를 하게 됩니다. 큰 의미가 없는 시각화가 되고 맙니다. ..
barplot 함수는 x축의 범주 대비 수치형 데이터를 막대의 길이로써 시각화하는 막대그래프를 출력해주는 함수입니다. 히스토그램과 굉장히 유사하지만 다른 점이 있습니다. barplot과 히스토그램의 차이점 각 차이점은 크게 세가지 정도로 나눌 수 있을 것 같습니다. 막대그래프 히스토그램 x축 값이 연속적이지 않아도 됨 연속적이고 분할 가능한 값만 적용가능 y축 각 값의 크기 계급의 도수(범위의 해당하는 변량수) 막대위치 막대가 떨어져있음 막대가 붙어있음 막대그래프 그리기 barplot함수의 파라미터는 히스토그램보다 적습니다. 주요 파라미터는 다음과 같습니다. height : 벡터 입력시 각 막대의 높이, 행렬 입력시 열의 개수 만큼 막대 생성, 행의 값의 누적이 막대의 높이 xlab : x축 제목 yla..
2차원 데이터의 컬럼 이름 가져오는 방법입니다. 직관적으로 가져오는 방법이 있고 attributes라는 함수를 거쳐 하나씩 불러오는 방법이 있습니다. 먼저 df를 만들겠습니다. class1 = c(100,45,80,75,30) class2 = c(70,80,60,50,40) class3 = c(40,50,60,70,80) class4 = c(10,25,100,70,35) class5 = c(60,55,55,45,35) df = data.frame('class1'=class1,'class2'=class2,'class3'=class3,'class4'=class4,'class5'=class5) df 다음과 같이 데이터프레임을 만들었습니다. 직관적 방법 직관적으로 데이터프레임에서 바로 열을 가져올 수 있습니다...
R에서의 히스토그램 그리는 방법입니다. 옵션이 많지만 다 쓸 필요는 없고 필요에 따라서 넣으면 됩니다. 기본적으로 주어진 파라미터는 다음과 같습니다. hist(x, breaks = "Sturges", freq = NULL, probability = !freq, include.lowest = TRUE, right = TRUE, density = NULL, angle = 45, col = NULL, border = NULL, main = paste("Histogram of" , xname), xlim = range(breaks), ylim = NULL, xlab = xname, ylab, axes = TRUE, plot = TRUE, labels = FALSE, nclass = NULL, warn.unuse..
R에서의 plot 함수 사용법입니다. plot 함수를 이용해 산점도와 꺽은 선 그래프를 그릴 수 있습니다. 기본 문법은 다음과 같습니다. plot(y축 데이터,kwag**) plot(x축 데이터,y축 데이터,kwag**) 위 방식은 데카르트 방식이라고 부릅니다. x,y 데이터를 (x,y)좌표로써 인지하고 그에 맞게 점을 찍는 방식입니다. x,y 매칭은 값 순서대로 합니다. plot에 넣은 데이터가 하나(x or y)라면 자연스럽게 y축 데이터를 기준으로 넘어가고 x축에는 인덱스로 설정됩니다. # x만 plot에 넣은 경우 x = c(1,2,3) plot(x) # x,y을 plot에 넣은 경우 x = c(1,2,3) y = c(4,5,6) plot(x,y) 축 관련 옵션 plot()함수 내에서 제목이나 축..
R에서 데이터를 tidy하게 다루게 해주는 패키지인 tidyverse 에 대한 설치하는 방법입니다. tidyverse 소개 tidyverse는 R에서 데이터분석을 한다면 무조건 써야하는 패키지입니다. 패키지로 되어 있어서 한번에 설치가 가능하고 데이터분석에 초점을 맞추고 있어서 데이터분석을 하기 좋은 툴을 많이 가지고 있습니다. 데이터가 잘 정리된 테이블로 나오게 하거나 시각화를 위한 도구들을 한꺼번에 모아놓았습니다. rstudio의 해들리 위캠 박사의 팀이 개발한 패키지이고 대표적으로 ggplot2, dplyr, tidyr, readr, purrr,tibble,stringr,forcats 이 있습니다. "기본 디자인 철학, 문법, 데이터구조의 공유"하는 tidy data를 추구하기 때문에 datafra..
R에서의 반복문입니다. 반복문은 특정 명령을 반복하게 만드는 구문입니다. for,while,repeat 이 있는데 각각 쓰는 방식이 다릅니다. 각 특성에 맞게 쓰면 효과적으로 반목문을 구사할 수 있습니다. for 문 for문은 주어진 범위 안에서 반복을 실행하는 반복문입니다. 즉, 반복 횟수를 정해야만 동작합니다. for문 작성 방법은 다음과 같이 소괄호 안에는 범위를 대표하는 변수와 해당범위를 지정하고 대괄호 안에 명령어를 씁니다. for (변수 in 범위){ 명령어 } 예를 보면 다음과 같습니다. > for (i in 1:3){ + print(i) +} [1] 1 [2] 2 [3] 3 주의할 점은 종종 Rstudio에서 명령어가 복잡해지면 대괄호 인식이 잘 안되는 경우가 있습니다. 대괄호 이후에 코드..
R에서의 조건식에 관한 내용입니다. 조건식은 해당 데이터가 참이면 명령을 실행하고 거짓이면 실행하지 않는 방식을 의미합니다. if 문 if, else if, else 등으로 이루어진 조건식으로 반복적으로 사용할 수 있습니다. 규칙이라면 if를 가장 먼저 쓰고 else if를 if와 else if 사이로 해야합니다. if 문이 잘 작성되었다면 아래 그림과 같이 순서대로 명령을 수행합니다. 먼저 if가 True이면 if 안에 명령어를 수행하고 if가 False면 else if의 명령어를, else if 도 False이면 else의 명령어를 수행하고 끝이 납니다 if문은 if,else if 옆에 조건문을 쓰고 명령어는 대괄호 안에 씁니다. else는 조건문이 필요없고 명령어만 넣습니다. 이렇게 해서 조건문을 ..
R에서의 데이터 결합 방법입니다. 데이터 결합을 하기 위해서는 rbind,cbind,merge 함수를 사용합니다. 벡터, 행렬, 데이터 프레임 모두 가능하고 간편하게 결합이 가능합니다. rbind는 행 결합, cbind는 열결합, merge는 key에 의해 결합됩니다. rbind rbind는 다른 파라미터는 없고 데이터만 넣어주면 됩니다. 백터나 행렬은 단일 데이터 타입만을 가지고 가므로 결합할 때 그 부분을 주의해줍니다. 다중 데이터 타입을 결합하더라도 안 되지는 않고 우선순위(문자열>숫자>논리)에 따라 결정됩니다. #vector > v1 = c(1,2,3) > v2 = c('a','b','c') > rbind(v1,v2) [,1] [,2] [,3] v1 "1" "2" "3" v2 "a" "b" "c"..
R에서 가장 많이 쓰이게 되는 데이터 프레임(DataFrame) 내용입니다. 일단 데이터 프레임은 벡터들로 이루어진 집합으로 볼 수 있습니다. 그런데 행과 열을 가지는 2차원 데이터 타입이고 다양한 형식을 한데 모아서 저장을 할 수 있습니다. 행렬은 동일한 데이터 타입을 가져야만 생성이 되었지만 데이터프레임은 꼭 그렇지 않아도 됩니다. 데이터프레임(data frame) 생성하기 데이터 프레임은 다음과 같은 만들 수 있습니다. 파라미터는 딱히 존재하지 않고 key-value형식으로 이름과 벡터를 매칭시켜주면 됩니다. data.frame(변수명1=벡터1,변수명=벡터2,...) >df = data.frame(col1=c(1,2,3,4),col2=c('a','b','c','d')) >df col1 col2 1 ..
2차원 벡터인 행렬의 에 대해 알아보겠습니다. R에서 행렬은 벡터와 마찬가지로 한 가지 유형의 값으로만 저장할 수 있습니다. 따라서, 1열은 숫자, 2열은 문자같이 두 가지 유형의 값으로는 행렬을 만들 수 없습니다. 행렬 생성하기 파라미터는 다음과 같습니다. matrix(data, nrow,ncol, byrow,dimnames) data : 행렬에 저장할 데이터 nrow : 행의 개수, 디폴트 1 ncol : 열의 개수, 디폴트 1 byrow : 행렬의 데이터 입력순서(디폴트 False), True : 행을 기준으로 입력 False : 열을 기준으로 입력 dimnames : 행과 열의 이름 행렬을 작성할 때 조심해야할 것은 짝이 안 맞을 때입니다. 파이썬 같은 경우 짝이 안 맞으면 오류가 나고 마는데 R..
앞선 포스팅에서 데이터 타입에 대한 소개를 했었는데요. 이번 포스팅에서는 R에서의 리스트 사용방법입니다. 리스트는 벡터와는 다르게 다양한 종류의 데이터를 가지는 데이터 묶음입니다.리스트도 리스트 안에 넣어서 쓸 수 있습니다. 그래서 재귀형(recursive)이라고도 말합니다. 파이썬에는 딕셔너리와 리스트가 따로 있었지만 R은 리스트 하나로 모두 해결하는 느낌입니다. 그래서 리스트 안에서 key-value 형태로 각 값의 이름을 넣을 수 있습니다. basic_list = list(1,2,3) key_value_list = list(a=1,b=2,c=3) #key-value 형태 리스트는 숫자뿐만 아니라 문자형 벡터, 논리형 벡터, 데이터 프레임, 함수도 저장할 수 있습니다. R에서는 뭔가를 담아내는 기능으..
몇가지 함수에 의해 벡터를 생성해보겠습니다. 벡터 반복 함수(rep) rep는 지정한 벡터를 반복 횟수만큼 반복시켜서 생성합니다. time으로 하면 자체를 반복하고 each를 하면 각 원소마다 반복합니다. rep(c(1,2,3),3) >[1] 1 2 3 1 2 3 1 2 3 rep(3:5, time=3) >[1] 3 4 5 3 4 5 3 4 5 rep(3:5, each=3) >[1] 3 3 3 4 4 4 5 5 5 벡터 수열 함수(seq) seq함수는 수열을 만들어줍니다. 파라미터는 seq(from,to,by) 세가지입니다. from : 시작값 to : 끝값 by : 증가 또는 감소 값 seq(1,10,2) >[1] 1 3 5 7 9 rep 안에 seq을 넣을 수 있습니다. rep(seq(1,10,2),..
R에서의 연산자들을 한데 모았습니다. 기호로 표현하는 것들이기 때문에 당연히 그 의미를 알아두면 편하게 쓸 수 있습니다. 어려운건 전혀 없습니다. 산술 연산자 연산자 내용 + 덧셈 - 뺄셈 * 곱하기 / 나누셈 %% 나눗셈 중 나머지 출려 %/% 나눗셈 중 몫 출력 ^ 지수 입력 ** 지수 입력 연산 중에서 나눗셈 부분만 보겠습니다. 나머지는 수학하듯이 하면 되서 넘어가겠습니다. # 나눗셈 > 7/4 [1] 1.75 # 몫 구하기 > 7%/%4 [1] 1 # 나머지 구하기 > 7%%4 [1] 3 관계 연산자 연산자 내용 > 부등호(좌변이 우변보다 크다) = 부등호(좌변이 우변보다 크거나 같다) c(FALSE, TRUE, FALSE) && c(TRUE,TRUE,FALSE) FALSE > c(FALSE, T..