SlideShare une entreprise Scribd logo
1  sur  63
1 
New York Times: 
Data Analysts Captivated by R’s Power 
6 Jan 2009 
Companies as diverse 
as Google, Pfizer, Merck, Bank of America, the 
InterContinental Hotels Group and Shell use it. 
The popularity of R at universities could threaten 
SAS Institute, the privately held business software 
company that specializes in data analysis software. 
R 관련 기사 
To some people R is just the 18th letter of the alphabet. 
R is also the name of a popular programming language 
used by a growing number of data analysts inside 
corporations and academia.
2 
R에 대한 관심의 증가 
 폭발적인 사용자 증가와 개발자의 확산으로, 대학교육의 표준 툴로 
자리 잡음 
☞ Revolution Analytics 소개자료(소스 : http://r4stats.com/articles/popularity/)
3 
기업체에서의 R의 활용 
 빅 데이터 기업의 분석 플랫폼 엔진으로 사용 중이며, 유수기업에서 
데이터 분석 tool로 사용 중임
4 
기업체에서의 R의 활용 
 특히, Google과 Facebook은 R을 자사의 주된 분석 플랫폼으로 
활용하고 있음 
Google's R Style Guide 
http://www.dataspora.com/2009/02/predictive-analytics-using-r/ 
Google uses R for data exploration 
and model prototyping, it is not 
typically used in production: in Bo’s 
group, R is typically run in a desktop 
environment. 
- Bo Cowgill, Google 
Itamar conveyed how Facebook’s 
Data Team used R in 2007 to 
answer two questions about new 
users: (i) which data points predict 
whether a user will stay? and (ii) if 
they stay, which data points predict 
how active they’ll be after three 
months? 
- Itamar Rosenn, Facebook
5 
소프트웨어 Vendor의 R 적용 
 Oracle, IBM의 Netezza, SAP의 HANA, Teradata 등에서 in-memory 
혹은 in-database 분석 엔진으로 R을 적용함
6 
통계 소프트웨어 Vendor의 R 적용 
 SAS나 SPSS 등의 통계 소프트웨어에서 R과의 연동을 통해 새로운 
분석 방법을 제공 
SAS/JMP
7 
Big Data 분석을 위한 R의 활용 
 빅 데이터 분석을 위한 아키텍처 전반에 걸쳐 공통적인 분석 플랫폼으로 
Hadoop File Based 
In-database 
자리잡음
8 
R / Hadoop 
 특히 국내외 Big Data 분석에 관심이 많은 기업체에서 Hadoop 기반의 
R 분석 기능 구현을 위하여 기술 확보에 노력하고 있음 
☞ Revolution Analytics 소개자료
9 
R / Hadoop (Word Count Example) 
☞ Revolution Analytics 소개자료
10 
웹 분석시스템 구현 
Data Sources 
& Creation of Analytics 
R / Statistical 
Modeling Expert 
DeployR 
Consumption of 
Analytics & Results 
Data Analysis 
Business Intelligence 
Interactive Web Apps 
Cloud / SaaS 
Deployment 
Expert 
 엔터프라이즈 환경의 분석 플랫폼으로 이용 
☞ Revolution Analytics 소개자료
11 
History of R 
☞ 유충현 (넥스알, 빅데이터 애널리틱스 인사이드 2011) 
 R은 1993년 뉴질랜드 오클랜드대학의 통계학과 교수 2명(Ross Ihaka, 
Robert Gentleman)에 의하여 개발 
 1976년 Bell Lab의 John Chambers, Rick Becker, Allan Wilks에 
의하여 개발된 S Language에 그 뿌리를 두고 있음
12 
왜 이름이 R일까? 
 두 명의 저자(Robert Gentleman과 Ross Ihaka) 이름 맨 앞 철자 
 1976년 Bell Lab에서 개발된 ‘S’ 언어의 이름에서
13 
R 이란 
R is a language and environment for statistical computing and graphics. 
 통계분석과 그래픽 작성을 위한 프로그래밍 언어 
- 통계학자에 의한, 그리고 통계학자를 위한 
 분석 소프트웨어 
- 데이터 입출력, 데이터 처리, 데이터 분석, 그래프 작성 등을 위한 
수많은 알고리즘 및 방법론 제공 
I
14 
R 이란 
II 
R is available as Free Software under the terms of the Free Software 
Foundation's GNU General Public License in source code form. 
 “GNU”라는 이름은 “GNU's Not Unix!”라는 문장의 재귀적 약어 
 GNU는 자유 소프트웨어를 뜻함 
- 프로그램을 어떠한 목적으로도 실행할 수 있는 자유 
- 자신의 필요에 맞게 개작할 수 있는 자유 
- 복제물을 재배포할 수 있는 자유 
- 프로그램을 개선시킬 수 있는 자유와 개선된 이점을 공동체 전체가 
누릴 수 있게 그것을 발표할 자유
15 
R 이란 
III 
R is Free. 
 사용자의 입장에서 Free 라는 것이 단지 무료임을 뜻하는 것은 아님 
- 언제 어디서든 다운로드 및 설치가 가능 
- Windows, Linux, Unix, Mac 등 다양한 운영체제에서 동작 
- 누구나 패키지를 만들어 다른 사람과 공유 가능 
- Java, Python, .Net, Visual Studio 등 다양한 개발 언어 및 플랫폼과 
연동
16 
R의 특징 
 In-Memory Computing 
- 빠른 처리 속도, H/W 메모리 크기에 영향을 받음 
 Object-oriented programming 
- 데이터, 함수가 object로 관리되어 짐 
- 클래스(class) & 메소드(method) 
 Package 
- 최신의 알고리즘 및 방법론을 적용 
- 다양한 함수 및 데이터 내장, Help의 Examples 바로 사용 가능
17 
The R Foundation (http://www.r-project.org) 
 R Development Core Team 멤버들에 의하여 설립된 비영리 단체 
 R의 배포와 수정은 R Development Core Team과 많은 기여자들에 
의하여 이루어 지고 있음
18 
CRAN (The Comprehensive R Archive Network) 
http://cran.r-project.org/ 
Korea : 
http://cran.nexr.com/ 
 R은 CRAN Site를 통하여 자유롭게 다운로드 받아 설치할 수 있음 
 현재 39개국 87개 Mirror 사이트 운영 중
19 
R Package (http://cran.r-project.org/web/packages/) 
R 패키지 수 
 CRAN Site에 3,868개 등록됨 
(2012년 6월 11일 기준) 
 이러한 패키지들은 새로운 
통계분석 알고리즘이나 새로운 IT 
기술의 응용에 관한 것을 포함 
 Software Vendor에 의하여 
Version Up이 되지 않는다는 것이 
다른 통계분석 소프트웨어와의 
차이임
20 
R Manual (http://cran.r-project.org/manuals.html) 
 R과 관련된 매뉴얼을 HTML 및 PDF 파일로 지원 (An Introduction to 
R, R Data Import/Export 등)
21 
RGUI 
 RGui 실행 기본 화면은 메뉴, 단축아이콘, 콘솔 창으로 구성 
①② 
③ 
메뉴 
툴바 
R Console
22 
① 
파일 편집 
기타 
패키지 도움말 
RGUI (메뉴) 
 메뉴는 파일, 편집, 보기, 기타, 패키지, 윈도우즈, 도움말로 구성
23 
R Console에 입력된 R command 
> getwd() 
> search() 
> searchpaths() 
> ls 오브젝트 리스트를 문자열로 보여주는 함수 
> ls() ls 함수를 실행 
> ls(pos=6) pos argument 값으로 6을 입력하여 ls 함수를 실행 
RGui (R Console) 
 입력된 명령(command)에 대한 결과가 interactive하게 화면에 출력
24 
 R Console에 help 명령어와 오브젝트 이름을 입력 
> ls ls 함수 코드 
> args(ls) ls 함수의 arguments 정보 
> help(ls) ls 함수의 도움말 정보(html 형식) 
RGui (도움말) 
ls 함수의 도움말 정보가 웹 브라우저에 표시 
R Console에 입력된 R command
25 
R을 배워 업무에 적용하려면 
Or is it?
26 
R을 배우는데 도움이 될 만한 곳 
 http://www.r-project.org 
 http://www.r-project.kr (한국 R 사용자 모임 - KRUG) 
 http://www.r-bloggers.com 
 http://stackoverflow.com 
 http://stats.stackexchange.com 
 http://www.inside-r.org/ 
 http://www.r-statistics.com/
27 
R GUI Projects 
“The 95% of statistical software users 
do not know how to write a script in 
command-line.” 
☞ 신종화(서울과학종합대학원대학교, Korea R User Conference 2011)
28 
R Studio (http://www.rstudio.org/)
29 
Rattle (http://rattle.togaware.com/), (install.packages("rattle"))
30 
Rattle (library(rattle); rattle())
31 
RExcel (http://rcom.univie.ac.at/)
32 
RExcel
33 
R Commander (install.packages("Rcmdr"))
34 
R Commander (library(Rcmdr))
35 
기업체에서 주로 사용하는 R Package 
 RODBC 
 sqldf 
 ggplot2 
 RgoogleMaps 
 googleVis 
 animation
36 
RODBC 패키지 
 DBMS와의 인터페이스를 위한 패키지 
Oracle, DB2, SQL Server, MySQL 등 
다양한 DBMS와 인터페이스가 가능
37 
RODBC 패키지 내 오브젝트 
 DBMS와의 인터페이스를 위한 패키지 
RODBC 패키지 내 주요 오브젝트 
오브젝트 명 설명 사용방법 
odbcConnect ODBC 접속 
odbcConnect(dsn, uid = "", 
pwd = "", ...) 
odbcClose ODBC 접속 해제 odbcClose(channel) 
sqlQuery 
SQL을 이용하여 데 
이터를 R의 Object 
로 생성 
sqlQuery(channel, 
paste("select State, Murder 
from USArrests", "where 
Rape > 30 order by 
Murder")) 
sqlSaveUpdate 
R의 data frame 
Object를 DB Table 
에 쓰기 
sqlSave(channel, USArrest 
s)
38 
sqldf 패키지 
 R 데이터에 대하여 SQL 문을 사용하여 데이터 Manipulation이 가능 
# SQL 사용 : Inner Join 
# merge(import_emp_tb_data, import_dept_tb_data, by = c("DEPTNO")) 
sqldf("select a.*, b.DNAME, LOC 
from import_emp_tb_data a, import_dept_tb_data b 
where a.DEPTNO = b.DEPTNO") 
# SQL 사용 : Left Join 
# merge(import_emp_tb_data, import_dept_tb_data, by = c("DEPTNO"), 
all.x = T) 
sqldf("select a.*, b.DNAME, LOC 
from import_emp_tb_data a left join import_dept_tb_data b 
using(DEPTNO)")
39 
ggplot2 패키지 
 보다 화려하고 유연하고 동적인 그래프 생성이 가능
40 
ggplot2 패키지 
qplot(x = hp, y = mpg, data = mtcars, 
color = cyl, facets = .~ gear) 
qplot(x = hp, y = mpg, data = mtcars, color = cyl, 
facets = .~ gear, label = rownames(mtcars), 
geom=c("text","point"), size = .1, hjust=-0.25)
41 
RgoogleMaps 패키지 
 구글 지도 상에 다양한 정보를 표출 
고속도로 영업소 위치 표출 
# 패키지 로딩... 
library(RgoogleMaps) 
# 데이터 읽어들이기 
tollgate_info <- read.csv("영업소정보.csv") 
# 지도 중심 위치 설정 
map.center.loc <- c(36, 128) 
# 지도 레벨 
input.zoom <- 7 
map_data <- tollgate_info 
# 고속도로 영업소 표시 
win.graph() 
mymap <- GetMap(center = map.center.loc, 
zoom = input.zoom, maptype = "road", format 
= "roadmap", destfile = "mymap.png") 
PlotOnStaticMap(mymap, lat = 
map_data$Y좌표, lon = map_data$X좌표, 
destfile = "mymap.point.png", cex = 1, pch 
=20, col="blue“)
42 
googleVis 패키지 
 R에서 구글 데이터 시각화 API를 이용 
http://code.google.com/p/google-motion-charts-with-r/
43 
animation 패키지 
 R Graph 결과를 animation으로 생성 
# animation으로 생성 
saveHTML({ 
for(map.i in 1:length(unique.name)) { 
mymap <- GetMap(center = 
map.center.loc, zoom = input.zoom, maptype 
= "road", format = "roadmap", destfile = 
"mymap.png") 
PlotOnStaticMap(mymap, lat = 
map_data[map_data$지역본부 == 
unique.name[map.i], ]$Y좌표, lon = 
map_data[map_data$지역본부 == 
unique.name[map.i], ]$X좌표, destfile = 
"mymap.point.png", cex = 1, pch =20, 
col="blue") 
} 
}, img.name = "unif_plot", imgdir = "unif_dir", 
htmlfile = "random.html", 
autobrowse = FALSE, title = "고속도로 
영영소", 
description = c("RgoogleMaps 패키지를 
활용한 데모.nn"))
44 
기업체에서 주로 사용하는 R 유틸리티 
 Rcmd 
 Rtools
45 
Rcmd 유틸리티 
 Batch 작업을 위한 R Script 
# ============================================================================================== 
# 프로그램 시작 
# ============================================================================================== 
cat("Batch Program Start!!!", as.character(Sys.time()), "n") 
# ---------------------------------------------------------------------------------------------- 
# 오늘 날짜 
today.date <- as.character(Sys.Date()) 
# 데이터프레임 생성 
sample.df <- data.frame(year = substr(today.date, 1, 4), 
month = substr(today.date, 6, 7), 
day = substr(today.date, 9, 10), 
sample.norm = rnorm(1000000), stringsAsFactors = TRUE) 
# 데이터프레임을 csv 파일로 저장 
write.csv(sample.df, paste("C:RProjectOUT", today.date, ".", "sample.df.csv", sep = ""), row.names = FALSE) 
# ============================================================================================== 
# 프로그램 종료 
# ============================================================================================== 
cat("Batch Program End!!!", as.character(Sys.time()), "n") 
# ----------------------------------------------------------------------------------------------
46 
Rcmd 유틸리티 
 Batch 작업을 위한 bat 파일 
CD C:Program FilesRR-2.13.1binx64 
Rcmd BATCH C:RprojectRSCRBatchSample.R C:RProjectTXTRBatchSample.txt 
set filename=RBatchSample_%date:~2%_%time:~0,2%_%time:~3,2%_%time:~6,2%.log 
copy C:RProjectTXTRBatchSample.txt C:RProjectLOG%filename% 
• bat 파일 
‒ bat 파일 내 명령어는 dos 명령어 임 
• Rcmd 
‒ R Batch를 수행하기 위해서는 Rcmd.exe 파일을 이용함 
• Rcmd BATCH 
‒ BATCH 명령어는 대문자 임 
‒ Usage: Rcmd BATCH [options] infile [outfile] 
‒ outfile을 지정하지 않으면 .Rout 파일로 outfile이 생성됨
47 
Rtools 유틸리티 
 기업체 내부의 분석 로직을 R 패키지로 생성 
http://www.murdoch-sutherland.com/Rtools
48 
Rtools 유틸리티 
 package.skeleton 함수를 이용하여 Package를 작성 
## two functions and two "data sets" : 
f <- function(x,y) x+y 
g <- function(x,y) x-y 
d <- data.frame(a=1, b=2) 
e <- rnorm(1000) 
package.skeleton(list=c("f","g","d","e"), name="mypkg") 
내 문서에 mypkg 디렉토리가 생성 
R CMD build --binary mypkg
49 
Rtools 유틸리티 
 mypkg_1.0.zip 파일 생성 및 Package Install 
R CMD INSTALL mypkg
50 
 Large Data를 이용한 분석 
 Rcmd 자동화 
 Visualization Tool과의 연계
51 
‘분석(Analytics)’ 정의 
분석 (Analytics)이란 ? 
의사결정과 action에 활용하기 위한 데이터의 광범위한 활용, 통계적이며 정량적 측면의 분석, 
탐색적 분석 및 예측모델링, 사실에 근거한 경영을 의미함 
mean the extensive use of data, statistical and quantitative analysis, explanatory and predictive 
models, and fact-based management to drive decisions and action 
의사결정 혹은 완전 자동화된 의사결정의 입력이 될 수 있음 
may be input for human decisions or may drive fully automated decisions 
☞ Davenport and Harris, “Competing on Analytics”, Harvard Business School Press 
I 
II
52 
Advanced Analytics 
 요즘 화두가 되는 고급분석(Advanced Analytics)은 통계분석, 예측 
(스코어) 모형, 시계열 분석과 최적화 등을 의미합니다 
대부분의 기업들은 고급 분석이 가능한 분석 전문가들을 리포팅 작성에 활용하고 있습니다 
Optimization 
Predictive Modeling 
Forecasting/extrapolation 
Statistical Analysis 
Alerts 
Query/drill down 
Ad hoc Reports 
Standard Reports 
What’s the best that can happen? 
What will happen next? 
What if these trends continue? 
Why is this happening? 
What actions are needed? 
Where exactly is the problem? 
How many, how often, where? 
What happened? 
Degree of Intelligence 
Competitive advantage 
Analytics 
Access and 
Reporting 
☞ Davenport and Harris, “Competing on Analytics”, Harvard Business School Press (2007) 참조
 바람직한 분석시스템의 구축은 분석엔진을 중심으로 마련된 저비용(Low 
53 
LCBEx (Low Cost But Excellent) 분석 플랫폼 
Cost)이지만 고성능이며 확장성이나 인터페이스가 뛰어난 (Excellent) 
Analytic Platform(분석 플랫폼)을 중심으로 이루어져야 함 
• 저비용 
− 오픈 소스 소프트웨어 기반으로 구축해 최대한 도입비용을 낮춰야 함 
• 고성능 
− 구현 사상을 고려하였을 때, 빠른 계산처리 및 새로운 알고리즘, 
방법론이 제공되어야 함 
• 확장 및 통합 용이성 
− 독립된 형태의 분석 시스템 구축 없이 분산 처리를 통한 처리가 
가능하여야 함 
− Hadoop과 같은 오픈소스 기반의 솔루션을 활용할 수 있음 
•Efficiency 
•Scalability 
분석 플랫폼 
•Agility 
• 구현 신속성 
− 분석 방법이나 결과 등을 오브젝트로 관리하여 공유, 
재활용이 가능하여야 함 
− 정형화된 분석 프로세스의 패키징이 용이하여 이관이나 
재활용이 용이하여야 함
54
55 
기본 사용법 (시작 환경 설정) 
 R 시작 환경을 ‘R설치경로librarybaseRRprofile’ 파일을 통하여 
변경 가능
56 
기본 사용법 (작업공간 / 이력) 
 작업공간(workspace)는 R 오브젝트의 저장소 
 작업공간은 .RData 이름으로 저장 
- 저장 위치는 기본적으로 working directory 
- R은 메모리를 이용하여 작업이 수행되기 때문에 변경된 오브젝트 정보를 
(R 종료시 혹은 R 작업시) 작업공간에 저장하지 않으면, 메모리에 있는 
모든 오브젝트 정보가 사라지게 됨 
 rm(list=ls(all=TRUE)) 입력 혹은 RGui 메뉴-기타-모든 오브젝트 삭제를 
통하여 현재 작업공간 내의 모든 오브젝트를 삭제할 수 있음 
 R Console에 입력된 command는 .Rhistory 이름으로 저장된다 
- 화살표 키 ↑와 ↓를 통하여 입력된 command를 다시 R console에 표시
57 
기본 사용법 (명령어) 
 R에서 사용되는 기본적인 명령어는 사용자에게 익숙한 이름으로 되어 있음 
- help() 도움말을 보여줌 
 그리고 programming language로서의 요소를 가지고 있음 
- <- <- 오른쪽에 위치한 정보를 왼쪽의 정보로 assign 
예) temp.x <- 3 temp.x라는 이름의 변수에 3을 할당 
 오브젝트 이름에 한글명 사용 가능 
- 문자 a~z, A~Z와 숫자 0~9, ‘ . ’, ‘ _ ’의 조합으로 구성, 대소문자를 구분함 
- 첫 문자로 숫자와 ‘_’는 사용 불가 
- if, for와 같이 R에서 사용되는 이름은 사용 불가
58 
기본 사용법 (스크립트) 
 R Console은 기본적으로 한 줄만 처리 
- R Console에서 명령어를 입력하고 실행 키를 누를 때 명령이 완료되지 
않아 추가적인 입력이 필요하면 ‘+’ 표시가 나타나 추가적인 입력을 기다림 
- 한 줄에 여러 명령이 있을 경우 ‘;’로 구분하여 처리 
- 주석(comment)은 ‘#’으로 시작되며 이후의 명령은 처리되지 않음 
 여러 줄을 한꺼번에 처리하고자 할 때 스크립트를 이용하게 됨 
- R 편집기 창을 이용해 스크립트를 작성하게 되고, 줄 또는 선택영역 
실행(Ctrl + R)을 통하여 스크립트가 R Console로 이동되어 처리가 됨 
- 여러 작업을 한꺼번에 처리하거나, 사용자 함수처럼 여러 줄로 이루어진 
하나의 개체를 생성하고자 할 때 유용하게 사용됨
59 
기본 사용법 (사용자 함수) 
 동일한 과정의 데이터 처리 및 분석을 수행할 때 사용자 함수를 작성하게 됨 
 사용자 함수는 R package에서 제공되어지는 함수를 변경하여 나만의 함수로 
작성해도 됨 
 사용자 함수는 함수명, argument로 구성된다 
 R 편집기 창을 이용하여 스크립트로 사용자 함수 작성 예 
 사용자 함수 실행 
- > ex.1.fn(1, 5, 9) ex.1.fn(input1 = 1, input2 = 5, input3 = 9) 
[1] 45
60 
기본 사용법 (패키지) 
 package란 R에서 사용가능한 object의 모음으로서 데이터, 함수 등이 포함 
 기본적으로 제공되는 package 이외의 추가 package는 CRAN을 통하여 혹은 
‘RGui 메뉴 - 패키지’를 통하여 다운로드 및 설치가 가능 
 package는 R 설치경로 아래의 library 디렉토리에 디렉토리 형태로 위치 
 R Console에서 package를 사용하기 위해서는 library(패키지이름)을 입력 
 로딩된 package는 기본적으로 Search Path 2번에 위치하게 됨 
 패키지 인스톨 : xlsReadWrite 패키지 
- 메뉴 ‘패키지’ - 패키지 인스톨 
- CRAN mirror : Korea 선택 
- Packages :xlsReadWrite 선택
61 
기본 사용법 (주요 데이터 객체) 
 벡터(vector) : 하나 이상의 자료 값으로 구성된 1차원의 자료구조 
 행렬(matrix) : 동일한 유형의 자료 값으로 구성된 행과 열의 2차원 자료구조 
 데이터 프레임(data frame) : 변수와 관측치로 구성된 2차원의 자료구조 
 배열(array) : 동일한 유형의 자료 값으로 구성된 2차원 이상의 자료구조 
 리스트(list) : 서로 다른 자료 유형으로 구성이 가능 
 시계열(time series) : 시간 등과 같이 일련의 시간 자료를 표현하는 자료구조 
Tip : 데이터 객체 보기 
sapply(ls(), function(x) class(get(x)))
62 
기본 사용법 (함수) 
 R 함수는 함수명(아규먼트) 입력을 통하여 수행 
> cor 
함수명을 R Console 창에 입력하면 R Code가 출력 
function (x, y = NULL, use = "everything", method = c("pearson", 
"kendall", "spearman")) 
{ 
na.method <- pmatch(use, c("all.obs", "complete.obs", "pairwise.complete.obs", 
"everything", "na.or.complete")) 
… 
} 
<environment: namespace:stats> 
args 함수를 이용하여 cor 함수의 아규먼트를 알아봄 
> args(cor) 
function (x, y = NULL, use = "everything", method = c("pearson", "kendall", 
"spearman"))
63 
기본 사용법 (함수) 
> args(cor) 
function (x, y = NULL, use = "everything", method = c("pearson", "kendall", "spearman")) 
> cor(x = longley) 
x 아규먼트로 longley 데이터 입력 
GNP.deflator GNP Unemployed Armed.Forces Population Year Employed 
GNP.deflator 1.0000000 0.9915892 0.6206334 0.4647442 0.9791634 0.9911492 0.9708985 
GNP 0.9915892 1.0000000 0.6042609 0.4464368 0.9910901 0.9952735 0.9835516 
Unemployed 0.6206334 0.6042609 1.0000000 -0.1774206 0.6865515 0.6682566 0.5024981 
Armed.Forces 0.4647442 0.4464368 -0.1774206 1.0000000 0.3644163 0.4172451 0.4573074 
Population 0.9791634 0.9910901 0.6865515 0.3644163 1.0000000 0.9939528 0.9603906 
Year 0.9911492 0.9952735 0.6682566 0.4172451 0.9939528 1.0000000 0.9713295 
Employed 0.9708985 0.9835516 0.5024981 0.4573074 0.9603906 0.9713295 1.0000000 
> cor(longley) 
첫번째 아규먼트는 x로 정의되어 있으므로 아규먼트 명 입력없이 수행해도 똑같은 결과를 얻음 
GNP.deflator GNP Unemployed Armed.Forces Population Year Employed 
GNP.deflator 1.0000000 0.9915892 0.6206334 0.4647442 0.9791634 0.9911492 0.9708985 
GNP 0.9915892 1.0000000 0.6042609 0.4464368 0.9910901 0.9952735 0.9835516 
Unemployed 0.6206334 0.6042609 1.0000000 -0.1774206 0.6865515 0.6682566 0.5024981 
Armed.Forces 0.4647442 0.4464368 -0.1774206 1.0000000 0.3644163 0.4172451 0.4573074 
Population 0.9791634 0.9910901 0.6865515 0.3644163 1.0000000 0.9939528 0.9603906 
Year 0.9911492 0.9952735 0.6682566 0.4172451 0.9939528 1.0000000 0.9713295 
Employed 0.9708985 0.9835516 0.5024981 0.4573074 0.9603906 0.9713295 1.0000000

Contenu connexe

Tendances

[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트
[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트
[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트S.O.P.T - Shout Our Passion Together
 
1.자료구조와 알고리즘(강의자료)
1.자료구조와 알고리즘(강의자료)1.자료구조와 알고리즘(강의자료)
1.자료구조와 알고리즘(강의자료)fmbvbfhs
 
R과 기초통계 : 02.기술통계-자료나타내기
R과 기초통계 : 02.기술통계-자료나타내기R과 기초통계 : 02.기술통계-자료나타내기
R과 기초통계 : 02.기술통계-자료나타내기Yoonwhan Lee
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1happychallenge
 
통계자료 분석을 위한 R
통계자료 분석을 위한 R통계자료 분석을 위한 R
통계자료 분석을 위한 RYoonwhan Lee
 
[Swift] Data Structure - Heap
[Swift] Data Structure - Heap[Swift] Data Structure - Heap
[Swift] Data Structure - HeapBill Kim
 

Tendances (8)

[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트
[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트
[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트
 
1.자료구조와 알고리즘(강의자료)
1.자료구조와 알고리즘(강의자료)1.자료구조와 알고리즘(강의자료)
1.자료구조와 알고리즘(강의자료)
 
R과 기초통계 : 02.기술통계-자료나타내기
R과 기초통계 : 02.기술통계-자료나타내기R과 기초통계 : 02.기술통계-자료나타내기
R과 기초통계 : 02.기술통계-자료나타내기
 
How2heap
How2heap How2heap
How2heap
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1
 
통계자료 분석을 위한 R
통계자료 분석을 위한 R통계자료 분석을 위한 R
통계자료 분석을 위한 R
 
[Swift] Data Structure - Heap
[Swift] Data Structure - Heap[Swift] Data Structure - Heap
[Swift] Data Structure - Heap
 
R intro
R introR intro
R intro
 

En vedette

오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA)
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA) 오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA)
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA) Yongho Ha
 
practice2
practice2practice2
practice2yosm
 
데이터 분석을 통한 위메프의 성장과 Google analytics
데이터 분석을 통한 위메프의 성장과 Google analytics데이터 분석을 통한 위메프의 성장과 Google analytics
데이터 분석을 통한 위메프의 성장과 Google analyticsCheolHwan Kim
 
Google Analytics 가이드 (한국어)
Google Analytics 가이드 (한국어)Google Analytics 가이드 (한국어)
Google Analytics 가이드 (한국어)Min Hee Lee
 
건강정책 연구를 위한 R 소프트웨어 소개
건강정책 연구를 위한 R 소프트웨어 소개건강정책 연구를 위한 R 소프트웨어 소개
건강정책 연구를 위한 R 소프트웨어 소개Inha University
 
2015 1 q ibm x force-보고서
2015 1 q ibm x force-보고서2015 1 q ibm x force-보고서
2015 1 q ibm x force-보고서ArumIm
 
기술통계 - 자료의 중심과 퍼진정도
기술통계 - 자료의 중심과 퍼진정도기술통계 - 자료의 중심과 퍼진정도
기술통계 - 자료의 중심과 퍼진정도Yoonwhan Lee
 
04.r 기초 유의성 검증
04.r 기초   유의성 검증04.r 기초   유의성 검증
04.r 기초 유의성 검증Yoonwhan Lee
 
[오픈콘텐츠랩/Boc] 소셜 데이팅 특강 강의자료
[오픈콘텐츠랩/Boc] 소셜 데이팅 특강 강의자료[오픈콘텐츠랩/Boc] 소셜 데이팅 특강 강의자료
[오픈콘텐츠랩/Boc] 소셜 데이팅 특강 강의자료opencontentslab
 
03.기술통계 자료의 중심과 퍼진정도
03.기술통계 자료의 중심과 퍼진정도03.기술통계 자료의 중심과 퍼진정도
03.기술통계 자료의 중심과 퍼진정도Yoonwhan Lee
 
2016 크라우드펀딩대회 사전설명회
2016 크라우드펀딩대회 사전설명회2016 크라우드펀딩대회 사전설명회
2016 크라우드펀딩대회 사전설명회opencontentslab
 
10.단일표본 평균 모비율
10.단일표본 평균 모비율10.단일표본 평균 모비율
10.단일표본 평균 모비율Yoonwhan Lee
 
02.자료다루기
02.자료다루기02.자료다루기
02.자료다루기Yoonwhan Lee
 
14.범주형자료분석
14.범주형자료분석14.범주형자료분석
14.범주형자료분석Yoonwhan Lee
 
09.통계적가설검정
09.통계적가설검정09.통계적가설검정
09.통계적가설검정Yoonwhan Lee
 

En vedette (20)

오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA)
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA) 오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA)
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA)
 
practice2
practice2practice2
practice2
 
01.r 기초
01.r 기초01.r 기초
01.r 기초
 
데이터 분석을 통한 위메프의 성장과 Google analytics
데이터 분석을 통한 위메프의 성장과 Google analytics데이터 분석을 통한 위메프의 성장과 Google analytics
데이터 분석을 통한 위메프의 성장과 Google analytics
 
Google Analytics 가이드 (한국어)
Google Analytics 가이드 (한국어)Google Analytics 가이드 (한국어)
Google Analytics 가이드 (한국어)
 
건강정책 연구를 위한 R 소프트웨어 소개
건강정책 연구를 위한 R 소프트웨어 소개건강정책 연구를 위한 R 소프트웨어 소개
건강정책 연구를 위한 R 소프트웨어 소개
 
2015 1 q ibm x force-보고서
2015 1 q ibm x force-보고서2015 1 q ibm x force-보고서
2015 1 q ibm x force-보고서
 
R 기초 II
R 기초 IIR 기초 II
R 기초 II
 
기술통계 - 자료의 중심과 퍼진정도
기술통계 - 자료의 중심과 퍼진정도기술통계 - 자료의 중심과 퍼진정도
기술통계 - 자료의 중심과 퍼진정도
 
04.r 기초 유의성 검증
04.r 기초   유의성 검증04.r 기초   유의성 검증
04.r 기초 유의성 검증
 
[오픈콘텐츠랩/Boc] 소셜 데이팅 특강 강의자료
[오픈콘텐츠랩/Boc] 소셜 데이팅 특강 강의자료[오픈콘텐츠랩/Boc] 소셜 데이팅 특강 강의자료
[오픈콘텐츠랩/Boc] 소셜 데이팅 특강 강의자료
 
03.기술통계 자료의 중심과 퍼진정도
03.기술통계 자료의 중심과 퍼진정도03.기술통계 자료의 중심과 퍼진정도
03.기술통계 자료의 중심과 퍼진정도
 
2016 크라우드펀딩대회 사전설명회
2016 크라우드펀딩대회 사전설명회2016 크라우드펀딩대회 사전설명회
2016 크라우드펀딩대회 사전설명회
 
10.단일표본 평균 모비율
10.단일표본 평균 모비율10.단일표본 평균 모비율
10.단일표본 평균 모비율
 
02.자료다루기
02.자료다루기02.자료다루기
02.자료다루기
 
08.추정
08.추정08.추정
08.추정
 
07.표본분포
07.표본분포07.표본분포
07.표본분포
 
06.확률분포
06.확률분포06.확률분포
06.확률분포
 
14.범주형자료분석
14.범주형자료분석14.범주형자료분석
14.범주형자료분석
 
09.통계적가설검정
09.통계적가설검정09.통계적가설검정
09.통계적가설검정
 

Similaire à R 소개

KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...Chanjin Park
 
실리콘 밸리 데이터 사이언티스트의 하루
실리콘 밸리 데이터 사이언티스트의 하루실리콘 밸리 데이터 사이언티스트의 하루
실리콘 밸리 데이터 사이언티스트의 하루Jaimie Kwon (권재명)
 
[Ankus Open Source Conference 2013] Introduction to Ankus / data mining
[Ankus Open Source Conference 2013] Introduction to Ankus / data mining [Ankus Open Source Conference 2013] Introduction to Ankus / data mining
[Ankus Open Source Conference 2013] Introduction to Ankus / data mining SuHyun Jeon
 
20160414 ROS 2차 강의 (for 아스라다 팀)
20160414 ROS 2차 강의 (for 아스라다 팀)20160414 ROS 2차 강의 (for 아스라다 팀)
20160414 ROS 2차 강의 (for 아스라다 팀)Yoonseok Pyo
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개Gruter
 
라즈베리파이로 슬랙 봇 개발하기
라즈베리파이로 슬랙 봇 개발하기라즈베리파이로 슬랙 봇 개발하기
라즈베리파이로 슬랙 봇 개발하기YunSeop Song
 
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...Ted Won
 
How to build Design System?
How to build Design System?How to build Design System?
How to build Design System?John Kim
 
Pc용 주요 오픈소스sw 종류 및 이용, 그리고 배포
Pc용 주요 오픈소스sw 종류 및 이용, 그리고 배포Pc용 주요 오픈소스sw 종류 및 이용, 그리고 배포
Pc용 주요 오픈소스sw 종류 및 이용, 그리고 배포Jihui Choi
 
Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218Hyoungjun Kim
 
[빅데이터 컨퍼런스 전희원]
[빅데이터 컨퍼런스 전희원][빅데이터 컨퍼런스 전희원]
[빅데이터 컨퍼런스 전희원]Jayoung Lim
 
[Td 2015]windows, linux, mac 신경 안 쓴다. .net 2015와 더더 좋아지는 c# 살짝 훔쳐보기(김명신)
[Td 2015]windows, linux, mac 신경 안 쓴다. .net 2015와 더더 좋아지는 c# 살짝 훔쳐보기(김명신)[Td 2015]windows, linux, mac 신경 안 쓴다. .net 2015와 더더 좋아지는 c# 살짝 훔쳐보기(김명신)
[Td 2015]windows, linux, mac 신경 안 쓴다. .net 2015와 더더 좋아지는 c# 살짝 훔쳐보기(김명신)Sang Don Kim
 
[Mpis17,red hat] SMART Health, innovative opensoruce and security with red ha...
[Mpis17,red hat] SMART Health, innovative opensoruce and security with red ha...[Mpis17,red hat] SMART Health, innovative opensoruce and security with red ha...
[Mpis17,red hat] SMART Health, innovative opensoruce and security with red ha...SAMUEL SJ Cheon
 
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디Youngbin Han
 
Bloter 넥스트 저널리즘 스쿨 강의자료
Bloter 넥스트 저널리즘 스쿨 강의자료Bloter 넥스트 저널리즘 스쿨 강의자료
Bloter 넥스트 저널리즘 스쿨 강의자료neuroassociates
 
Flamingo 1.2 릴리즈의 지원 기능 정리
Flamingo 1.2 릴리즈의 지원 기능 정리Flamingo 1.2 릴리즈의 지원 기능 정리
Flamingo 1.2 릴리즈의 지원 기능 정리BYOUNG GON KIM
 
Tech Update - The Future of .NET Framework (김명신 부장)
Tech Update - The Future of .NET Framework (김명신 부장)Tech Update - The Future of .NET Framework (김명신 부장)
Tech Update - The Future of .NET Framework (김명신 부장)Eunbee Song
 
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)Jaimie Kwon (권재명)
 

Similaire à R 소개 (20)

Intro to r & hadoop
Intro to r & hadoopIntro to r & hadoop
Intro to r & hadoop
 
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
실리콘 밸리 데이터 사이언티스트의 하루
실리콘 밸리 데이터 사이언티스트의 하루실리콘 밸리 데이터 사이언티스트의 하루
실리콘 밸리 데이터 사이언티스트의 하루
 
[Ankus Open Source Conference 2013] Introduction to Ankus / data mining
[Ankus Open Source Conference 2013] Introduction to Ankus / data mining [Ankus Open Source Conference 2013] Introduction to Ankus / data mining
[Ankus Open Source Conference 2013] Introduction to Ankus / data mining
 
20160414 ROS 2차 강의 (for 아스라다 팀)
20160414 ROS 2차 강의 (for 아스라다 팀)20160414 ROS 2차 강의 (for 아스라다 팀)
20160414 ROS 2차 강의 (for 아스라다 팀)
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
 
라즈베리파이로 슬랙 봇 개발하기
라즈베리파이로 슬랙 봇 개발하기라즈베리파이로 슬랙 봇 개발하기
라즈베리파이로 슬랙 봇 개발하기
 
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
 
How to build Design System?
How to build Design System?How to build Design System?
How to build Design System?
 
Pc용 주요 오픈소스sw 종류 및 이용, 그리고 배포
Pc용 주요 오픈소스sw 종류 및 이용, 그리고 배포Pc용 주요 오픈소스sw 종류 및 이용, 그리고 배포
Pc용 주요 오픈소스sw 종류 및 이용, 그리고 배포
 
Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218
 
[빅데이터 컨퍼런스 전희원]
[빅데이터 컨퍼런스 전희원][빅데이터 컨퍼런스 전희원]
[빅데이터 컨퍼런스 전희원]
 
[Td 2015]windows, linux, mac 신경 안 쓴다. .net 2015와 더더 좋아지는 c# 살짝 훔쳐보기(김명신)
[Td 2015]windows, linux, mac 신경 안 쓴다. .net 2015와 더더 좋아지는 c# 살짝 훔쳐보기(김명신)[Td 2015]windows, linux, mac 신경 안 쓴다. .net 2015와 더더 좋아지는 c# 살짝 훔쳐보기(김명신)
[Td 2015]windows, linux, mac 신경 안 쓴다. .net 2015와 더더 좋아지는 c# 살짝 훔쳐보기(김명신)
 
[Mpis17,red hat] SMART Health, innovative opensoruce and security with red ha...
[Mpis17,red hat] SMART Health, innovative opensoruce and security with red ha...[Mpis17,red hat] SMART Health, innovative opensoruce and security with red ha...
[Mpis17,red hat] SMART Health, innovative opensoruce and security with red ha...
 
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
 
Bloter 넥스트 저널리즘 스쿨 강의자료
Bloter 넥스트 저널리즘 스쿨 강의자료Bloter 넥스트 저널리즘 스쿨 강의자료
Bloter 넥스트 저널리즘 스쿨 강의자료
 
Flamingo 1.2 릴리즈의 지원 기능 정리
Flamingo 1.2 릴리즈의 지원 기능 정리Flamingo 1.2 릴리즈의 지원 기능 정리
Flamingo 1.2 릴리즈의 지원 기능 정리
 
Tech Update - The Future of .NET Framework (김명신 부장)
Tech Update - The Future of .NET Framework (김명신 부장)Tech Update - The Future of .NET Framework (김명신 부장)
Tech Update - The Future of .NET Framework (김명신 부장)
 
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
 

Plus de Kangwook Lee

Plus de Kangwook Lee (20)

빅데이터전문가교육 3학기 1
빅데이터전문가교육 3학기 1빅데이터전문가교육 3학기 1
빅데이터전문가교육 3학기 1
 
빅데이터
빅데이터빅데이터
빅데이터
 
분석8기 4조
분석8기 4조분석8기 4조
분석8기 4조
 
분석7기 5조
분석7기 5조분석7기 5조
분석7기 5조
 
분석6기 4조
분석6기 4조분석6기 4조
분석6기 4조
 
분석5기 4조
분석5기 4조분석5기 4조
분석5기 4조
 
기술8기 2조
기술8기 2조기술8기 2조
기술8기 2조
 
기술7기 2조
기술7기 2조기술7기 2조
기술7기 2조
 
기술6기 3조
기술6기 3조기술6기 3조
기술6기 3조
 
기술5기 1조
기술5기 1조기술5기 1조
기술5기 1조
 
Apply교육
Apply교육Apply교육
Apply교육
 
빅데이터 분석활용 가이드 (1)
빅데이터 분석활용 가이드 (1)빅데이터 분석활용 가이드 (1)
빅데이터 분석활용 가이드 (1)
 
Editing textvariables
Editing textvariablesEditing textvariables
Editing textvariables
 
Summarizing data
Summarizing dataSummarizing data
Summarizing data
 
Subsetting andsorting
Subsetting andsortingSubsetting andsorting
Subsetting andsorting
 
Readingfromothersources
ReadingfromothersourcesReadingfromothersources
Readingfromothersources
 
Readingfromapis
ReadingfromapisReadingfromapis
Readingfromapis
 
Reading files4
Reading files4Reading files4
Reading files4
 
Reading files3
Reading files3Reading files3
Reading files3
 
Reading files2
Reading files2Reading files2
Reading files2
 

R 소개

  • 1. 1 New York Times: Data Analysts Captivated by R’s Power 6 Jan 2009 Companies as diverse as Google, Pfizer, Merck, Bank of America, the InterContinental Hotels Group and Shell use it. The popularity of R at universities could threaten SAS Institute, the privately held business software company that specializes in data analysis software. R 관련 기사 To some people R is just the 18th letter of the alphabet. R is also the name of a popular programming language used by a growing number of data analysts inside corporations and academia.
  • 2. 2 R에 대한 관심의 증가  폭발적인 사용자 증가와 개발자의 확산으로, 대학교육의 표준 툴로 자리 잡음 ☞ Revolution Analytics 소개자료(소스 : http://r4stats.com/articles/popularity/)
  • 3. 3 기업체에서의 R의 활용  빅 데이터 기업의 분석 플랫폼 엔진으로 사용 중이며, 유수기업에서 데이터 분석 tool로 사용 중임
  • 4. 4 기업체에서의 R의 활용  특히, Google과 Facebook은 R을 자사의 주된 분석 플랫폼으로 활용하고 있음 Google's R Style Guide http://www.dataspora.com/2009/02/predictive-analytics-using-r/ Google uses R for data exploration and model prototyping, it is not typically used in production: in Bo’s group, R is typically run in a desktop environment. - Bo Cowgill, Google Itamar conveyed how Facebook’s Data Team used R in 2007 to answer two questions about new users: (i) which data points predict whether a user will stay? and (ii) if they stay, which data points predict how active they’ll be after three months? - Itamar Rosenn, Facebook
  • 5. 5 소프트웨어 Vendor의 R 적용  Oracle, IBM의 Netezza, SAP의 HANA, Teradata 등에서 in-memory 혹은 in-database 분석 엔진으로 R을 적용함
  • 6. 6 통계 소프트웨어 Vendor의 R 적용  SAS나 SPSS 등의 통계 소프트웨어에서 R과의 연동을 통해 새로운 분석 방법을 제공 SAS/JMP
  • 7. 7 Big Data 분석을 위한 R의 활용  빅 데이터 분석을 위한 아키텍처 전반에 걸쳐 공통적인 분석 플랫폼으로 Hadoop File Based In-database 자리잡음
  • 8. 8 R / Hadoop  특히 국내외 Big Data 분석에 관심이 많은 기업체에서 Hadoop 기반의 R 분석 기능 구현을 위하여 기술 확보에 노력하고 있음 ☞ Revolution Analytics 소개자료
  • 9. 9 R / Hadoop (Word Count Example) ☞ Revolution Analytics 소개자료
  • 10. 10 웹 분석시스템 구현 Data Sources & Creation of Analytics R / Statistical Modeling Expert DeployR Consumption of Analytics & Results Data Analysis Business Intelligence Interactive Web Apps Cloud / SaaS Deployment Expert  엔터프라이즈 환경의 분석 플랫폼으로 이용 ☞ Revolution Analytics 소개자료
  • 11. 11 History of R ☞ 유충현 (넥스알, 빅데이터 애널리틱스 인사이드 2011)  R은 1993년 뉴질랜드 오클랜드대학의 통계학과 교수 2명(Ross Ihaka, Robert Gentleman)에 의하여 개발  1976년 Bell Lab의 John Chambers, Rick Becker, Allan Wilks에 의하여 개발된 S Language에 그 뿌리를 두고 있음
  • 12. 12 왜 이름이 R일까?  두 명의 저자(Robert Gentleman과 Ross Ihaka) 이름 맨 앞 철자  1976년 Bell Lab에서 개발된 ‘S’ 언어의 이름에서
  • 13. 13 R 이란 R is a language and environment for statistical computing and graphics.  통계분석과 그래픽 작성을 위한 프로그래밍 언어 - 통계학자에 의한, 그리고 통계학자를 위한  분석 소프트웨어 - 데이터 입출력, 데이터 처리, 데이터 분석, 그래프 작성 등을 위한 수많은 알고리즘 및 방법론 제공 I
  • 14. 14 R 이란 II R is available as Free Software under the terms of the Free Software Foundation's GNU General Public License in source code form.  “GNU”라는 이름은 “GNU's Not Unix!”라는 문장의 재귀적 약어  GNU는 자유 소프트웨어를 뜻함 - 프로그램을 어떠한 목적으로도 실행할 수 있는 자유 - 자신의 필요에 맞게 개작할 수 있는 자유 - 복제물을 재배포할 수 있는 자유 - 프로그램을 개선시킬 수 있는 자유와 개선된 이점을 공동체 전체가 누릴 수 있게 그것을 발표할 자유
  • 15. 15 R 이란 III R is Free.  사용자의 입장에서 Free 라는 것이 단지 무료임을 뜻하는 것은 아님 - 언제 어디서든 다운로드 및 설치가 가능 - Windows, Linux, Unix, Mac 등 다양한 운영체제에서 동작 - 누구나 패키지를 만들어 다른 사람과 공유 가능 - Java, Python, .Net, Visual Studio 등 다양한 개발 언어 및 플랫폼과 연동
  • 16. 16 R의 특징  In-Memory Computing - 빠른 처리 속도, H/W 메모리 크기에 영향을 받음  Object-oriented programming - 데이터, 함수가 object로 관리되어 짐 - 클래스(class) & 메소드(method)  Package - 최신의 알고리즘 및 방법론을 적용 - 다양한 함수 및 데이터 내장, Help의 Examples 바로 사용 가능
  • 17. 17 The R Foundation (http://www.r-project.org)  R Development Core Team 멤버들에 의하여 설립된 비영리 단체  R의 배포와 수정은 R Development Core Team과 많은 기여자들에 의하여 이루어 지고 있음
  • 18. 18 CRAN (The Comprehensive R Archive Network) http://cran.r-project.org/ Korea : http://cran.nexr.com/  R은 CRAN Site를 통하여 자유롭게 다운로드 받아 설치할 수 있음  현재 39개국 87개 Mirror 사이트 운영 중
  • 19. 19 R Package (http://cran.r-project.org/web/packages/) R 패키지 수  CRAN Site에 3,868개 등록됨 (2012년 6월 11일 기준)  이러한 패키지들은 새로운 통계분석 알고리즘이나 새로운 IT 기술의 응용에 관한 것을 포함  Software Vendor에 의하여 Version Up이 되지 않는다는 것이 다른 통계분석 소프트웨어와의 차이임
  • 20. 20 R Manual (http://cran.r-project.org/manuals.html)  R과 관련된 매뉴얼을 HTML 및 PDF 파일로 지원 (An Introduction to R, R Data Import/Export 등)
  • 21. 21 RGUI  RGui 실행 기본 화면은 메뉴, 단축아이콘, 콘솔 창으로 구성 ①② ③ 메뉴 툴바 R Console
  • 22. 22 ① 파일 편집 기타 패키지 도움말 RGUI (메뉴)  메뉴는 파일, 편집, 보기, 기타, 패키지, 윈도우즈, 도움말로 구성
  • 23. 23 R Console에 입력된 R command > getwd() > search() > searchpaths() > ls 오브젝트 리스트를 문자열로 보여주는 함수 > ls() ls 함수를 실행 > ls(pos=6) pos argument 값으로 6을 입력하여 ls 함수를 실행 RGui (R Console)  입력된 명령(command)에 대한 결과가 interactive하게 화면에 출력
  • 24. 24  R Console에 help 명령어와 오브젝트 이름을 입력 > ls ls 함수 코드 > args(ls) ls 함수의 arguments 정보 > help(ls) ls 함수의 도움말 정보(html 형식) RGui (도움말) ls 함수의 도움말 정보가 웹 브라우저에 표시 R Console에 입력된 R command
  • 25. 25 R을 배워 업무에 적용하려면 Or is it?
  • 26. 26 R을 배우는데 도움이 될 만한 곳  http://www.r-project.org  http://www.r-project.kr (한국 R 사용자 모임 - KRUG)  http://www.r-bloggers.com  http://stackoverflow.com  http://stats.stackexchange.com  http://www.inside-r.org/  http://www.r-statistics.com/
  • 27. 27 R GUI Projects “The 95% of statistical software users do not know how to write a script in command-line.” ☞ 신종화(서울과학종합대학원대학교, Korea R User Conference 2011)
  • 28. 28 R Studio (http://www.rstudio.org/)
  • 29. 29 Rattle (http://rattle.togaware.com/), (install.packages("rattle"))
  • 33. 33 R Commander (install.packages("Rcmdr"))
  • 34. 34 R Commander (library(Rcmdr))
  • 35. 35 기업체에서 주로 사용하는 R Package  RODBC  sqldf  ggplot2  RgoogleMaps  googleVis  animation
  • 36. 36 RODBC 패키지  DBMS와의 인터페이스를 위한 패키지 Oracle, DB2, SQL Server, MySQL 등 다양한 DBMS와 인터페이스가 가능
  • 37. 37 RODBC 패키지 내 오브젝트  DBMS와의 인터페이스를 위한 패키지 RODBC 패키지 내 주요 오브젝트 오브젝트 명 설명 사용방법 odbcConnect ODBC 접속 odbcConnect(dsn, uid = "", pwd = "", ...) odbcClose ODBC 접속 해제 odbcClose(channel) sqlQuery SQL을 이용하여 데 이터를 R의 Object 로 생성 sqlQuery(channel, paste("select State, Murder from USArrests", "where Rape > 30 order by Murder")) sqlSaveUpdate R의 data frame Object를 DB Table 에 쓰기 sqlSave(channel, USArrest s)
  • 38. 38 sqldf 패키지  R 데이터에 대하여 SQL 문을 사용하여 데이터 Manipulation이 가능 # SQL 사용 : Inner Join # merge(import_emp_tb_data, import_dept_tb_data, by = c("DEPTNO")) sqldf("select a.*, b.DNAME, LOC from import_emp_tb_data a, import_dept_tb_data b where a.DEPTNO = b.DEPTNO") # SQL 사용 : Left Join # merge(import_emp_tb_data, import_dept_tb_data, by = c("DEPTNO"), all.x = T) sqldf("select a.*, b.DNAME, LOC from import_emp_tb_data a left join import_dept_tb_data b using(DEPTNO)")
  • 39. 39 ggplot2 패키지  보다 화려하고 유연하고 동적인 그래프 생성이 가능
  • 40. 40 ggplot2 패키지 qplot(x = hp, y = mpg, data = mtcars, color = cyl, facets = .~ gear) qplot(x = hp, y = mpg, data = mtcars, color = cyl, facets = .~ gear, label = rownames(mtcars), geom=c("text","point"), size = .1, hjust=-0.25)
  • 41. 41 RgoogleMaps 패키지  구글 지도 상에 다양한 정보를 표출 고속도로 영업소 위치 표출 # 패키지 로딩... library(RgoogleMaps) # 데이터 읽어들이기 tollgate_info <- read.csv("영업소정보.csv") # 지도 중심 위치 설정 map.center.loc <- c(36, 128) # 지도 레벨 input.zoom <- 7 map_data <- tollgate_info # 고속도로 영업소 표시 win.graph() mymap <- GetMap(center = map.center.loc, zoom = input.zoom, maptype = "road", format = "roadmap", destfile = "mymap.png") PlotOnStaticMap(mymap, lat = map_data$Y좌표, lon = map_data$X좌표, destfile = "mymap.point.png", cex = 1, pch =20, col="blue“)
  • 42. 42 googleVis 패키지  R에서 구글 데이터 시각화 API를 이용 http://code.google.com/p/google-motion-charts-with-r/
  • 43. 43 animation 패키지  R Graph 결과를 animation으로 생성 # animation으로 생성 saveHTML({ for(map.i in 1:length(unique.name)) { mymap <- GetMap(center = map.center.loc, zoom = input.zoom, maptype = "road", format = "roadmap", destfile = "mymap.png") PlotOnStaticMap(mymap, lat = map_data[map_data$지역본부 == unique.name[map.i], ]$Y좌표, lon = map_data[map_data$지역본부 == unique.name[map.i], ]$X좌표, destfile = "mymap.point.png", cex = 1, pch =20, col="blue") } }, img.name = "unif_plot", imgdir = "unif_dir", htmlfile = "random.html", autobrowse = FALSE, title = "고속도로 영영소", description = c("RgoogleMaps 패키지를 활용한 데모.nn"))
  • 44. 44 기업체에서 주로 사용하는 R 유틸리티  Rcmd  Rtools
  • 45. 45 Rcmd 유틸리티  Batch 작업을 위한 R Script # ============================================================================================== # 프로그램 시작 # ============================================================================================== cat("Batch Program Start!!!", as.character(Sys.time()), "n") # ---------------------------------------------------------------------------------------------- # 오늘 날짜 today.date <- as.character(Sys.Date()) # 데이터프레임 생성 sample.df <- data.frame(year = substr(today.date, 1, 4), month = substr(today.date, 6, 7), day = substr(today.date, 9, 10), sample.norm = rnorm(1000000), stringsAsFactors = TRUE) # 데이터프레임을 csv 파일로 저장 write.csv(sample.df, paste("C:RProjectOUT", today.date, ".", "sample.df.csv", sep = ""), row.names = FALSE) # ============================================================================================== # 프로그램 종료 # ============================================================================================== cat("Batch Program End!!!", as.character(Sys.time()), "n") # ----------------------------------------------------------------------------------------------
  • 46. 46 Rcmd 유틸리티  Batch 작업을 위한 bat 파일 CD C:Program FilesRR-2.13.1binx64 Rcmd BATCH C:RprojectRSCRBatchSample.R C:RProjectTXTRBatchSample.txt set filename=RBatchSample_%date:~2%_%time:~0,2%_%time:~3,2%_%time:~6,2%.log copy C:RProjectTXTRBatchSample.txt C:RProjectLOG%filename% • bat 파일 ‒ bat 파일 내 명령어는 dos 명령어 임 • Rcmd ‒ R Batch를 수행하기 위해서는 Rcmd.exe 파일을 이용함 • Rcmd BATCH ‒ BATCH 명령어는 대문자 임 ‒ Usage: Rcmd BATCH [options] infile [outfile] ‒ outfile을 지정하지 않으면 .Rout 파일로 outfile이 생성됨
  • 47. 47 Rtools 유틸리티  기업체 내부의 분석 로직을 R 패키지로 생성 http://www.murdoch-sutherland.com/Rtools
  • 48. 48 Rtools 유틸리티  package.skeleton 함수를 이용하여 Package를 작성 ## two functions and two "data sets" : f <- function(x,y) x+y g <- function(x,y) x-y d <- data.frame(a=1, b=2) e <- rnorm(1000) package.skeleton(list=c("f","g","d","e"), name="mypkg") 내 문서에 mypkg 디렉토리가 생성 R CMD build --binary mypkg
  • 49. 49 Rtools 유틸리티  mypkg_1.0.zip 파일 생성 및 Package Install R CMD INSTALL mypkg
  • 50. 50  Large Data를 이용한 분석  Rcmd 자동화  Visualization Tool과의 연계
  • 51. 51 ‘분석(Analytics)’ 정의 분석 (Analytics)이란 ? 의사결정과 action에 활용하기 위한 데이터의 광범위한 활용, 통계적이며 정량적 측면의 분석, 탐색적 분석 및 예측모델링, 사실에 근거한 경영을 의미함 mean the extensive use of data, statistical and quantitative analysis, explanatory and predictive models, and fact-based management to drive decisions and action 의사결정 혹은 완전 자동화된 의사결정의 입력이 될 수 있음 may be input for human decisions or may drive fully automated decisions ☞ Davenport and Harris, “Competing on Analytics”, Harvard Business School Press I II
  • 52. 52 Advanced Analytics  요즘 화두가 되는 고급분석(Advanced Analytics)은 통계분석, 예측 (스코어) 모형, 시계열 분석과 최적화 등을 의미합니다 대부분의 기업들은 고급 분석이 가능한 분석 전문가들을 리포팅 작성에 활용하고 있습니다 Optimization Predictive Modeling Forecasting/extrapolation Statistical Analysis Alerts Query/drill down Ad hoc Reports Standard Reports What’s the best that can happen? What will happen next? What if these trends continue? Why is this happening? What actions are needed? Where exactly is the problem? How many, how often, where? What happened? Degree of Intelligence Competitive advantage Analytics Access and Reporting ☞ Davenport and Harris, “Competing on Analytics”, Harvard Business School Press (2007) 참조
  • 53.  바람직한 분석시스템의 구축은 분석엔진을 중심으로 마련된 저비용(Low 53 LCBEx (Low Cost But Excellent) 분석 플랫폼 Cost)이지만 고성능이며 확장성이나 인터페이스가 뛰어난 (Excellent) Analytic Platform(분석 플랫폼)을 중심으로 이루어져야 함 • 저비용 − 오픈 소스 소프트웨어 기반으로 구축해 최대한 도입비용을 낮춰야 함 • 고성능 − 구현 사상을 고려하였을 때, 빠른 계산처리 및 새로운 알고리즘, 방법론이 제공되어야 함 • 확장 및 통합 용이성 − 독립된 형태의 분석 시스템 구축 없이 분산 처리를 통한 처리가 가능하여야 함 − Hadoop과 같은 오픈소스 기반의 솔루션을 활용할 수 있음 •Efficiency •Scalability 분석 플랫폼 •Agility • 구현 신속성 − 분석 방법이나 결과 등을 오브젝트로 관리하여 공유, 재활용이 가능하여야 함 − 정형화된 분석 프로세스의 패키징이 용이하여 이관이나 재활용이 용이하여야 함
  • 54. 54
  • 55. 55 기본 사용법 (시작 환경 설정)  R 시작 환경을 ‘R설치경로librarybaseRRprofile’ 파일을 통하여 변경 가능
  • 56. 56 기본 사용법 (작업공간 / 이력)  작업공간(workspace)는 R 오브젝트의 저장소  작업공간은 .RData 이름으로 저장 - 저장 위치는 기본적으로 working directory - R은 메모리를 이용하여 작업이 수행되기 때문에 변경된 오브젝트 정보를 (R 종료시 혹은 R 작업시) 작업공간에 저장하지 않으면, 메모리에 있는 모든 오브젝트 정보가 사라지게 됨  rm(list=ls(all=TRUE)) 입력 혹은 RGui 메뉴-기타-모든 오브젝트 삭제를 통하여 현재 작업공간 내의 모든 오브젝트를 삭제할 수 있음  R Console에 입력된 command는 .Rhistory 이름으로 저장된다 - 화살표 키 ↑와 ↓를 통하여 입력된 command를 다시 R console에 표시
  • 57. 57 기본 사용법 (명령어)  R에서 사용되는 기본적인 명령어는 사용자에게 익숙한 이름으로 되어 있음 - help() 도움말을 보여줌  그리고 programming language로서의 요소를 가지고 있음 - <- <- 오른쪽에 위치한 정보를 왼쪽의 정보로 assign 예) temp.x <- 3 temp.x라는 이름의 변수에 3을 할당  오브젝트 이름에 한글명 사용 가능 - 문자 a~z, A~Z와 숫자 0~9, ‘ . ’, ‘ _ ’의 조합으로 구성, 대소문자를 구분함 - 첫 문자로 숫자와 ‘_’는 사용 불가 - if, for와 같이 R에서 사용되는 이름은 사용 불가
  • 58. 58 기본 사용법 (스크립트)  R Console은 기본적으로 한 줄만 처리 - R Console에서 명령어를 입력하고 실행 키를 누를 때 명령이 완료되지 않아 추가적인 입력이 필요하면 ‘+’ 표시가 나타나 추가적인 입력을 기다림 - 한 줄에 여러 명령이 있을 경우 ‘;’로 구분하여 처리 - 주석(comment)은 ‘#’으로 시작되며 이후의 명령은 처리되지 않음  여러 줄을 한꺼번에 처리하고자 할 때 스크립트를 이용하게 됨 - R 편집기 창을 이용해 스크립트를 작성하게 되고, 줄 또는 선택영역 실행(Ctrl + R)을 통하여 스크립트가 R Console로 이동되어 처리가 됨 - 여러 작업을 한꺼번에 처리하거나, 사용자 함수처럼 여러 줄로 이루어진 하나의 개체를 생성하고자 할 때 유용하게 사용됨
  • 59. 59 기본 사용법 (사용자 함수)  동일한 과정의 데이터 처리 및 분석을 수행할 때 사용자 함수를 작성하게 됨  사용자 함수는 R package에서 제공되어지는 함수를 변경하여 나만의 함수로 작성해도 됨  사용자 함수는 함수명, argument로 구성된다  R 편집기 창을 이용하여 스크립트로 사용자 함수 작성 예  사용자 함수 실행 - > ex.1.fn(1, 5, 9) ex.1.fn(input1 = 1, input2 = 5, input3 = 9) [1] 45
  • 60. 60 기본 사용법 (패키지)  package란 R에서 사용가능한 object의 모음으로서 데이터, 함수 등이 포함  기본적으로 제공되는 package 이외의 추가 package는 CRAN을 통하여 혹은 ‘RGui 메뉴 - 패키지’를 통하여 다운로드 및 설치가 가능  package는 R 설치경로 아래의 library 디렉토리에 디렉토리 형태로 위치  R Console에서 package를 사용하기 위해서는 library(패키지이름)을 입력  로딩된 package는 기본적으로 Search Path 2번에 위치하게 됨  패키지 인스톨 : xlsReadWrite 패키지 - 메뉴 ‘패키지’ - 패키지 인스톨 - CRAN mirror : Korea 선택 - Packages :xlsReadWrite 선택
  • 61. 61 기본 사용법 (주요 데이터 객체)  벡터(vector) : 하나 이상의 자료 값으로 구성된 1차원의 자료구조  행렬(matrix) : 동일한 유형의 자료 값으로 구성된 행과 열의 2차원 자료구조  데이터 프레임(data frame) : 변수와 관측치로 구성된 2차원의 자료구조  배열(array) : 동일한 유형의 자료 값으로 구성된 2차원 이상의 자료구조  리스트(list) : 서로 다른 자료 유형으로 구성이 가능  시계열(time series) : 시간 등과 같이 일련의 시간 자료를 표현하는 자료구조 Tip : 데이터 객체 보기 sapply(ls(), function(x) class(get(x)))
  • 62. 62 기본 사용법 (함수)  R 함수는 함수명(아규먼트) 입력을 통하여 수행 > cor 함수명을 R Console 창에 입력하면 R Code가 출력 function (x, y = NULL, use = "everything", method = c("pearson", "kendall", "spearman")) { na.method <- pmatch(use, c("all.obs", "complete.obs", "pairwise.complete.obs", "everything", "na.or.complete")) … } <environment: namespace:stats> args 함수를 이용하여 cor 함수의 아규먼트를 알아봄 > args(cor) function (x, y = NULL, use = "everything", method = c("pearson", "kendall", "spearman"))
  • 63. 63 기본 사용법 (함수) > args(cor) function (x, y = NULL, use = "everything", method = c("pearson", "kendall", "spearman")) > cor(x = longley) x 아규먼트로 longley 데이터 입력 GNP.deflator GNP Unemployed Armed.Forces Population Year Employed GNP.deflator 1.0000000 0.9915892 0.6206334 0.4647442 0.9791634 0.9911492 0.9708985 GNP 0.9915892 1.0000000 0.6042609 0.4464368 0.9910901 0.9952735 0.9835516 Unemployed 0.6206334 0.6042609 1.0000000 -0.1774206 0.6865515 0.6682566 0.5024981 Armed.Forces 0.4647442 0.4464368 -0.1774206 1.0000000 0.3644163 0.4172451 0.4573074 Population 0.9791634 0.9910901 0.6865515 0.3644163 1.0000000 0.9939528 0.9603906 Year 0.9911492 0.9952735 0.6682566 0.4172451 0.9939528 1.0000000 0.9713295 Employed 0.9708985 0.9835516 0.5024981 0.4573074 0.9603906 0.9713295 1.0000000 > cor(longley) 첫번째 아규먼트는 x로 정의되어 있으므로 아규먼트 명 입력없이 수행해도 똑같은 결과를 얻음 GNP.deflator GNP Unemployed Armed.Forces Population Year Employed GNP.deflator 1.0000000 0.9915892 0.6206334 0.4647442 0.9791634 0.9911492 0.9708985 GNP 0.9915892 1.0000000 0.6042609 0.4464368 0.9910901 0.9952735 0.9835516 Unemployed 0.6206334 0.6042609 1.0000000 -0.1774206 0.6865515 0.6682566 0.5024981 Armed.Forces 0.4647442 0.4464368 -0.1774206 1.0000000 0.3644163 0.4172451 0.4573074 Population 0.9791634 0.9910901 0.6865515 0.3644163 1.0000000 0.9939528 0.9603906 Year 0.9911492 0.9952735 0.6682566 0.4172451 0.9939528 1.0000000 0.9713295 Employed 0.9708985 0.9835516 0.5024981 0.4573074 0.9603906 0.9713295 1.0000000