반응형

SW 65

R : 버블차트-bubble chart (개념 및 예제)

버블 차트(bubble chart)예전부터 저의 포스팅을 보신 분이라면 산점도를 이해하고 계실 것입니다. 산점도는 두 가지의 변수간의 상관 관계를 나타냅니다. 버블 차트는 산점도의 한 종류입니다. 제3의 변수를 크기에 따라 버블로 표현하는 차트입니다. 아래 그림은 버블 차트의 한 종류입니다. 느낌이 오시나요? 버블차트를 이용하시려면 패키지를 설치하셔야 합니다. 패키지 명은 MASS입니다. 관련 패키지를 설치해주세요. 만약 패키지 설치하는 방법을 모르시는 분은 제가 이전에 포스팅한 패키지 설치 방법을 참조하시면 됩니다. 이번에 실습에 사용할 데이터셋은 UScrime입니다. 딱봐도 미국 범죄와 관련된 내용이겠죠? 인구수, 실업률, 범죄율 등의 데이터가 저장되어 있습니다. 실습 예제 library(MASS) ..

SW/R 2019.02.23

R : 나무지도-treemap (개념 및 예제)

데이터 시각화의 중요성숫자, 문자, 표로만 분석한 결과를 제공하면 어떨까요? 이해가 어려울 것입니다. 데이터만을 보고 의미를 이해하기 어렵기 때문입니다. 우리는 보통 시각을 통해 정보 습득하는 것에 능숙합니다. 분석한 결과와 데이터를 그래프로 표현하면 어떨까요? 아래 그림처럼 도구를 활용해 시각화하고 표현한다면 정보 전달이 용이해지고 이해가 빨라질 것입니다. 나무지도(treemap) 나무지도인 아래 그림을 참조하세요. 데이터가 갖는 계층 구조를 타일 모양을 표현한 것을 나무지도라고 합니다. 아래 보느바와 같이, 계층적 속성을 가집니다. 그리고 계층들은 컬러로 표현됩니다. 우선 나무지도를 사용하기 위해서는 패키지를 설치해야 합니다. 패키지 이름은 treemap입니다. 이전에 패키지 설치 방법을 포스팅 했으..

SW/R 2019.02.22

R : 함수 코드 보기, 파일 출력 (TIP)

함수의 source code 보기 함수의 동작원리가 궁금할 떄가 있습니다. 그런 경우에는 위처럼 함수 이름만 입력하면 확인할 수 있습니다. 하지만 내용을 볼 수 없는 함수도 종종 있습니다. 기본적인 함수들은 대부분 source code를 확인할 수 있습니다. 이것을 기반으로 좋은 데이터 분석을 할 수 있습니다. 실행내용 파일로 출력 sink("test.txt", append=T) # 출력할 파일 openfor (i in 1:100) { print(i) # 지정한 파일로 출력}sink() # 출력할 파일 close 위 코드는 text.txt 파일에 숫자를 출력하는 예제입니다. 실행하면 1부터 50까지의 숫자가 출력되어 저장되는 것을 확인할 수 있습니다. append가 T인 경우, 지정한 파일에 이미 어떤 ..

SW/R 2019.02.21

R : apply() 함수 (개념 및 예제)

apply 함수R 프로그래밍할 때 for 나 while을 사용하는 것을 지양해야 합니다. 그 이유는 데이터가 많고 연산이 많은 경우 처리속도가 많이 저하게 되기 때문입니다. 대신 apply 계열 함수를 이용해 반복문을 작성할 수 있습니다. matrix, data frame, list 등을 활용한 반복문은 apply 함수로 대체 가능합니다. apply()apply() 함수는 matrix, data frame 에서 행단위, 열단위의 작업을 쉽게 할 수 있습니다. 사용자 정의 함수도 적용할 수 있습니다. for (i in 1:4) { mean(iris[,i]) } apply(iris[,1:4], 1, mean) # row 방향으로 함수적용# [1] 2.550 2.375 2.350 2.350 2.550 2.85..

SW/R 2019.02.19

R : 반복문 for (개념 및 예제)

반복문 for for : 예제1 for(i in 1:10) { print(i) }# 1# 2# 3# 4# 5# 6# 7# 8# 9# 10 for 반복문의 원리가 느껴지시나요? i가 1부터 10까지 할당되서 print문이 10번 실행됩니다. for : 예제2 for(i in 1:10) { cat("2*",i,"=",2*i,"\n") }# 2* 1 = 2 # 2* 2 = 4 # 2* 3 = 6 # 2* 4 = 8 # 2* 5 = 10 # 2* 6 = 12 # 2* 7 = 14 # 2* 8 = 16 # 2* 9 = 18 # 2* 10 = 20 for문을 이해하셨다면 위처럼 응용해서 원하는 다양한 값도 도출할 수 있습니다. for : 예제3 for(i in 1:20) { if(i%%2==0) { # 짝수인지 확..

SW/R 2019.02.17

R : if문 (개념 및 예제)

R 프로그래밍 R은 데이터 분석 도구입니다. 그러나 동시에 프로그래밍 언어의 성격도 포함하고 있습니다. R프로그래밍 기본 문법을 알고 활용할 수 있어야 합니다. 그래야 다른 사람의 분석 코드도 이해할 수 있습니다. 그렇다면 프로그래밍은 무엇일까요? 주어진 문제를 컴퓨터가 해결할 수 있도록 절차를 문법에 맞추어 써내려가는 과정을 뜻합니다. R에서 제공하는 함수만으로는 분석의 한계가 있습니다. 그 경우 프로그래밍을 활용하여 문제를 해결할 수 있습니다. if 문 if (logical expression) { statements}else { alternative statements} 먼저 if문에 대해 배워보겠습니다. 위에 서술된 구문은 if문의 기본 형태입니다. 만약 logical expression이 참일 ..

SW/R 2019.02.16

R : 데이터 분석 사례 (개념 및 예제)

데이터셋 일반 정보 str(iris) # 데이터셋의 전체 정보 확인# 'data.frame': 150 obs. of 5 variables:# $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...# $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...# $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...# $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...# $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 ..

SW/R 2019.02.15

R : 선그래프 (개념 및 예제)

선그래프연도별 증감 추이와 같은 데이터를 표현할 때 많이 활용합니다. 시간 순서에 따른 데이터를 시각화할 때 자주 사용됩니다. 예를 들어 월별 지각생 통계가 있습니다. 위 통계를 활용해 월병 지각생 통계의 선 그래프를 그려봅시다. month = 1:12 # 월 데이터 입력late = c(5,8,7,9,4,6,12,13,8,6,6,4) # 각 월마다 지각생 수plot(month, # x 데이터 입력하기 late, # y 데이터 입력하기 main="Late students", # 메인 이름 type= "l", # 그래프의 종류 정하기 lty=1, # 선의 종류 정하기 lwd=1, # 선의 굵기 정하기 xlab="Month ", # x축 이름 정하기 ylab="Late cnt" # y축 이름 정하기) http..

SW/R 2019.02.14

R : 산점도 (개념 및 예제)

다변량 자료다변량 자료는 키와 몸무게의 관계와 같이 두개 이상의 변수를 동시에 다루어야 하는 자료를 뜻합니다. 두개인 경우에는 특히 이변량 자료라고 칭합니다. 일변량 자료는 vectcor에 저장하면 되지만, 다변량 자료는 matrix 또는 data frame에 저장하여 분석합니다. 키와 몸무게의 관계를 분석할 떄 키, 몸무게는 변수가 됩니다. 각 변수는 데이터셋에서 열로 표현됩니다. 이변량 자료의 분포 및 상관관계 시각화mtcars 데이터셋에서 자동차 중량(wt) 와 연비(mpg) 의 상관관계를 산점도를 통해 확인해보겠습니다. wt

SW/R 2019.02.12

R : 문자열 함수 (개념 및 예제)

paste() 함수 paste("Good", "Morning", "Tom", sep=" ")# "Good Morning Tom" paste("Good", "Morning", "Tom", sep="/")# "Good/Morning/Tom" paste(1:10, "is good", sep=" ")# "1 is good" "2 is good" "3 is good" "4 is good" # "5 is good" "6 is good" "7 is good" "8 is good" # "9 is good" "10 is good" paste() 함수는 여러 문자열을 연결하여 하나로 만들어줍니다. sep은 연결하는 단어 사이에 넣을 값을 뜻합니다. 다양한 방식으로 문자열을 핸들링이 가능합니다. 예제를 통해 확인하세요. s..

SW/R 2019.02.11

R : 일변량 양적 자료의 분석 (개념 및 예제)

양적자료질적 자료에 비해 양적자료는 분석 방법이 많습니다. 대표적인 분석방법은 아래내용과 같습니다. - 평균/중앙값- 4분위수- 분산, 표준편차- Boxplot- Histogram- 나무-잎 그림 나라에서 국민들의 소득자료를 가지고 있습니다. 이 자료를 분석해서 설명할수 있는 값은 아래와 같이 여러가지가 있습니다. 평균(mean)평균은 균형점, 무게중심을 의미합니다. 중앙값(median)어떤 주어진 값들을 정렬합니다. 그 때, 가장 중앙에 위치하는 값을 의미합니다. 절사평균(trimmed mean)표본중에서 작은값 n% 와 큰값 n%를 제외합니다. 그리고 나머지 (100-2n)% 의 자료만 사용하여 구한 평균을 의미합니다. 왜 이렇게 3가지 값으로 나누어서 표현할까요? 즉, 위 그림처럼 상위권이나 하위권..

SW/R 2019.02.10

R : 기초 통계 개념

기초통계 개념통계 기법은 무엇일까요? 자료를 정리하는 수단입니다. 또 분석할 수 있는 강력한 수단입니다. 데이터 분석에서 많은 부분이 통계적 기법을 필요로 합니다. 다음의 예를 참고하세요. - 여론조사 결과 분석입- 제조업 불량율 분석- 학습 효과 분석 위 예시 말고도 많은 예가 있겠죠? 따라서 데이터 분석가 되기 위해서 통계학을 이해해야 합니다. 질적 자료(qualitative data) 또는 범주형 자료(categorical data)질적 자료는 무엇일까요? 숫자로 표현할 수 없는 자료를 의미합니다. 원칙적으로 말이죠. 예를 들면 학력 수준, 성별이 있습니다. 양적 자료(quantitative data)양적 자료는 자료 자체가 숫자로 표현된 것을 의미합니다. 크게 두가지로, 이산자료, 연속자료로 나누..

SW/R 2019.02.08

R : list와 factor (개념 및 예제)

List 우리가 데이터를 저장할 때 vector, 또 matrix, data frame을 썼습니다. 그것 말고도 많이 쓰이는 것 중에 list와 factor라고 하는 type이 있습니다. list는 일차적으로는 vector하고 비슷합니다. vector는 들어가는 원소들의 데이터 type이 다 똑같아야 하는 것입니다. 똑같아야 저장이 되는데, 이 리스트는 아무거나 들어갑니다. 숫자 들어갔다가 문자 들어갔다가 심지어는 vector도 들어갔다가, 또 다른 matrix로 저장하고, 그냥 뭐 이상한 보따리 같은 형태로 되어있습니다. 구분해서 짝짝짝 들어갈 수 있는 섞어서 넣을 수 있는 형태가 list입니다. 그래서 이 예를 보면 list에 name은 kim 이렇게 되어있습니다. 이 name은 이렇게 준 이 nam..

SW/R 2019.02.06

R : 매트릭스(matrix), 데이터 프레임(data frame) 사용법 및 예제

데이터프레임에 대해서 여러가지 정보를 얻어오는 다양한 함수들이 있습니다. 우선 어떤 데이터 프레임이 있습니다. 파일에서 읽어왔습니다. 굉장히 데이터가 많이 들어있습니다. 그러면 이것이 행이 몇 행이 있고 열이 몇 열이 있을까요? 그래서 dim으로 2차원 matrix의 행의 수와 열의 수를 알아내는 함수입니다. 그렇게 실행하면 아래 보이는 것처럼 150, 5 이렇게 나오는데 이게 한 이렇게 나오는데 이것이 행과 열의 수가 됩니다. 그다음에 nrow는 number of row의 약자입니다. 그래서 행의 개수를 가져오게 됩니다. 그다음에 ncol는 number of column 그래서 column의 수를 가져옵니다. 그 다음에 namesiris 그러면 이것은 column의 이름입니다. 나중에 보면 colnam..

SW/R 2019.02.04

R : 데이터 프레임(data frame) 개념 및 예제

data frame 만들기 data frame을 만드는 방법은 다음과 같습니다. 일단 city라고 하는 vector가 있습니다. 그 다음에 rank라고 하는 vector가 있습니다. 2개 이상 여러 개의 vector를 data.fame이라고 하는 것으로 이렇게 묶으면 됩니다. 이렇게 묶으면 c.info라고 보이는 것과 같은 data fame이 만들어지는데, 아시다시피 city는 지금 문자열 형태로 되어 있고 rank는 숫자형입니다. 문자형 column과 숫자형 column이 같이 묶어진 이런 형태의 data fame을 만들게 되는데, data fame도 마찬가지로 만들어서 우리가 분석하는 경우는 잘 없습니다. 대체로는 다 이미 파일로 저장되어 있는 데이터를 쭉 불러오면 R이 알아서 문자 column과 숫..

SW/R 2019.02.03

R : 매트릭스(matrix) 개념 및 예제

matrix1차원 데이터를 저장하기 위해서는 vector라고 하는 자료 구조에 저장을 했습니다. 이제는 2차원 데이터를 저장하는 내용을 학습을 시작할 텐데요. 보통 분석을 위해서 데이터를 얻게 되면 1차원 데이터인 경우도 많이 있습니다. 그렇지만 거의 대부분은 2차원 형태 엑셀의 테이블 형태로 되어있는 자료 구조가 대부분입니다. 그래서 R에서는 이런 2차원 형태의 데이터를 저장하기 위해서 matrix하고 data fame이라고 하는 장치를 제공합니다. matrix와 data fame 둘 다 2차원 데이터를 저장할 수 있습니다. 그런데 matrix는 그 matrix에 저장되는 모든 자료의 종류가 동일해야 합니다. 그에 비해서 data fame은 2차원 데이터를 저장하는데, 숫자와 문자 이런 것들을 섞어서 ..

SW/R 2019.02.02
반응형