SlideShare a Scribd company logo
1 of 42
Download to read offline
실무를 위한 R 프로그래밍(1)
한국토지주택공사
스마트도시개발처
스마트시티 빅데이터팀
소 개
이준호
스마트시티 빅데이터팀
류영상
스마트시티 빅데이터팀
 본 교재는 ‘쉽게 배우는 R 데이터 분석’을 참고하여 정리하였습니다.
 실습데이터는 저자의 깃허브에 다운로드 하실 수 있습니다. (http://bit.ly/start_r )
강의 순서
1. R?
2. R 환경설정
3. 변수와 함수
4. 데이터프레임
Korea Land & Housing Corp.
1. R?
• 오클랜드 대학의 로스 이하카(Ross Ihaka)와 로버트 젠틀맨(Robort Gentleman)이 1990년대 초 처음 공개
• 전 세계에 걸쳐 데이터전문가들이 애용하는 통계 프로그래밍 언어이자, 계산 및 시각화를 지원하는 데이터 분석 프로그램
 특징
• 무료로 사용
• 인터프리터 언어
• 12,000개 이상의 통계분석 패키지 제공
• 강력한 시각화 기능
 R 다운로드와 설치
• R 의공식홈페이지 : http://www.r-project.org
• 이곳은R 설치파일을다운로드 받을 수 있으며, R이 제공하는 각종문서들을
함께 볼 수 있음
Korea Land & Housing Corp.
1-1. R Studio
 Command Line에서 명령어를 입력하는 것은 불편하므로 R studio를 설치해서 작업하는 것이 편리
 다운로드위치
https://rstudio.com/products/rstudio/download/
Korea Land & Housing Corp.
Korea Land & Housing Corp.
콘솔창
환경창
파일/플롯/패키지/헬프/뷰어
 Rstudio 구성
소스창
Korea Land & Housing Corp.
 주요 명령어
ctrl + shift + c : 주석처리
ctrl + shift + m : 파이프연산자(%>%)
file.choose( ) : 탐색기
ctrl + spacebar : 단축어 명령어 표출
ctrl + enter : 실행
floor : 정수만 표출
getwd() : 작업디렉토리 확인
setwd() : 작업디렉토리 설정
Korea Land & Housing Corp.
2. R 환경설정
 워킹 디렉토리
• R에서 파일을 불러오거나 저장할 때 사용하는 폴더
 프로젝트 만들기
• 소스코드, 이미지, 문서, 외부프로그램에서 생성된 자료 등 수많은 파일을 활용하게 되는데, 파일들을 프로젝트 폴더별로
관리하면 편리함
Korea Land & Housing Corp.
프로젝트 이름과 폴더경로에 한글이 들어가면 오류발생
경로
디렉토리 명
Korea Land & Housing Corp.
 Soft-wrap 자동 줄바꾸기 옵션 설정
• 명령어가 길어지면 화면 밖으로 넘어가지 않고 자동으로 줄을 바꿈
Korea Land & Housing Corp.
 인코딩 방식
글자가 깨질경우 인코딩을 변경
Korea Land & Housing Corp.
3-1. 변수
변수(Variable)
• 다양한 값을 지니고 있는 하나의 속성
• 변수는 데이터 분석의 대상
Korea Land & Housing Corp.
 변수 만들기
a <- 1
a
## [1] 1
b <- 2
b
## [1] 2
c <- 3
c
## [1] 3
d <- 3.5
d
## [1] 3.5
a+b
## [1] 3
a+b+c
## [1] 6
4/b
## [1] 2
5*b
## [1] 10
변수로 연산하기
Korea Land & Housing Corp.
Korea Land & Housing Corp.
Korea Land & Housing Corp.
여러 값으로 구성된 변수 만들기
var1 <- c(1, 2, 5, 7, 8) # 숫자 다섯 개로 구성된 var1 생성
var1
## [1] 1 2 5 7 8
var2 <- c(1:5) # 1~5까지 연속값으로 var2 생성
var2
## [1] 1 2 3 4 5
• c()
• seq() var3 <- seq(1, 5) # 1~5까지 연속값으로 var3 생성
var3
## [1] 1 2 3 4 5
var4 <- seq(1, 10, by = 2) # 1~10까지 2 간격 연속값으로 var4 생성
var4
## [1] 1 3 5 7 9
var5 <- seq(1, 10, by = 3) # 1~10까지 3 간격 연속값으로 var5 생성
var5
## [1] 1 4 7 10
 c()함수의 c는 ‘합치다’를 의미하는 ‘combine’
Korea Land & Housing Corp.
• 연속값 변수로 연산하기
var1
## [1] 1 2 5 7 8
var1+2
## [1] 3 4 7 9 10
var1
## [1] 1 2 5 7 8
var2
## [1] 1 2 3 4 5
var1+var2
## [1] 2 4 8 11 13
• 문자로 된 변수 만들기
str1 <- "a"
str1
## [1] "a"
str2 <- "text"
str2
## [1] "text"
str3 <- "Hello World!"
str3
## [1] "Hello World!"
Korea Land & Housing Corp.
• 연속문자 변수 만들기
str4 <- c("a", "b", "c")
str4
## [1] "a" "b" "c"
str5 <- c("Hello!", "World", "is", "good!")
str5
## [1] "Hello!" "World" "is" "good!"
Korea Land & Housing Corp.
3-2. 함수
함수
• 값을 넣으면 특정한 기능을 수행해 처음과 다른 값이 출력됨
Korea Land & Housing Corp.
• 숫자를 다루는 함수 이용하기
# 변수 만들기
x <- c(1, 2, 3)
x
## [1] 1 2 3
# 함수 적용하기
mean(x)
## [1] 2
max(x)
## [1] 3
min(x)
## [1] 1
• 문자를 다루는 함수 이용하기
str5
## [1] "Hello!" "World" "is" "good!"
paste(str5, collapse = ",")
# 쉼표를 구분자로 str5의 단어들 하나로 합치기
## [1] "Hello!,World,is,good!"
Korea Land & Housing Corp.
• 함수의 옵션 설정하기 – 파라미터(collapse)
paste(str5, collapse = " ")
## [1] "Hello! World is good!"
• 함수의 결과물로 새 변수 만들기
x_mean <- mean(x)
x_mean
## [1] 2
str5_paste <- paste(str5, collapse = " ")
str5_paste
## [1] "Hello! World is good!"
Korea Land & Housing Corp.
Korea Land & Housing Corp.
3-3. 패키지
패키지(packages)
• 함수가 여러 개 들어 있는 꾸러미
• 하나의 패키지 안에 다양한 함수가 들어있음
• 함수를 사용하려면 패키지 설치 먼저 해야함
Korea Land & Housing Corp.
• ggplot2 패키지 설치하기, 로드하기
install.packages("ggplot2") # ggplot2 패키지 설치
library(ggplot2) # ggplot2 패키지 로드
• 함수 사용하기
# 여러 문자로 구성된 변수 생성
x <- c("a", "a", "b", "c")
x
## [1] "a" "a" "b" "c"
# 빈도 그래프 출력
qplot(x)
Korea Land & Housing Corp.
• ggplot2의 mpg 데이터로 그래프 만들기
# data에 mpg, x축에 hwy 변수 지정하여 그
래프 생성
qplot(data = mpg, x = hwy)
Korea Land & Housing Corp.
• qplot() 파라미터 바꿔보기
# x축 cty
qplot(data = mpg, x = cty)
# x축 drv, y축 hwy
qplot(data = mpg, x = drv, y = hwy)
Korea Land & Housing Corp.
# x축 drv, y축 hwy, 선 그래프 형태
qplot(data = mpg, x = drv, y = hwy, geom =
"line")
# x축 drv, y축 hwy, 상자 그림 형태
qplot(data = mpg, x = drv, y = hwy, geom =
"boxplot")
Korea Land & Housing Corp.
# x축 drv, y축 hwy, 상자 그림 형태, drv별 색 표현
qplot(data = mpg, x = drv, y = hwy, geom = "boxplot", colour = drv)
함수의 기능이 궁금할 땐 Help 함수를 활용해 보세요
?qplot
Korea Land & Housing Corp.
혼자서 해보기
Q1. 시험 점수 변수 만들고 출력하기
다섯 명의 학생이 시험을 봤습니다. 학생 다섯 명의 시험 점수를 담고 있는 변수를 만들어 출력
해 보세요. 각 학생의 시험 점수는 다음과 같습니다.
80, 60, 70, 50, 90
Q2. 전체 평균 구하기
앞 문제에서 만든 변수를 이용해서 이 학생들의 전체 평균 점수를 구해보세요.
Q3. 전체 평균 변수 만들고 출력하기
전체 평균 점수를 담고 있는 새 변수를 만들어 출력해 보세요. 앞 문제를 풀 때 사용한 코드를 응
용하면 됩니다.
Korea Land & Housing Corp.
4-1. 데이터프레임
• '열'은 속성
• '행'은 한 사람의 정보
Korea Land & Housing Corp.
• 데이터가 크다 = 행이 많다 또는 열이 많다
Korea Land & Housing Corp.
4-2. 데이터프레임 만들기 – 시험성적 데이터
• 데이터 입력해 데이터 프레임 만들기
english <- c(90, 80, 60, 70) # 영어 점수 변수 생성
english
## [1] 90 80 60 70
math <- c(50, 60, 100, 20) # 수학 점수 변수 생성
math
## [1] 50 60 100 20
# english, math로 데이터 프레임 생성해서 df_midterm에 할
당
df_midterm <- data.frame(english, math)
df_midterm
## english math
## 1 90 50
## 2 80 60
## 3 60 100
## 4 70 20
class <- c(1, 1, 2, 2)
class
## [1] 1 1 2 2
df_midterm <- data.frame(english, math, class)
df_midterm
## english math class
## 1 90 50 1
## 2 80 60 1
## 3 60 100 2
## 4 70 20 2
mean(df_midterm$english) # df_midterm의 english로 평균
산출
## [1] 75
mean(df_midterm$math) # df_midterm의 math로 평균 산
술
## [1] 57.5
Korea Land & Housing Corp.
• 데이터 프레임 한 번에 만들기
df_midterm <- data.frame(english = c(90, 80, 60, 70),
math = c(50, 60, 100, 20),
class = c(1, 1, 2, 2))
df_midterm
## english math class
## 1 90 50 1
## 2 80 60 1
## 3 60 100 2
## 4 70 20 2
• 혼자서 해보기
Q1. data.frame()과 c()를 조합해서 표의 내용을 데이터 프레임으로 만들어 출력해보세요.
제품 가격 판매량
사과 1800 24
딸기 1500 38
수박 3000 13
Q2. 앞에서 만든 데이터 프레임을 이용해서 과일 가격 평균, 판매량 평균을 구해보세요.
Korea Land & Housing Corp.
4-3. 외부데이터 이용하기 – 시험성적 데이터
• 엑셀 파일 불러오기
# readxl 패키지 설치
install.packages("readxl")
# readxl 패키지 로드
library(readxl)
df_exam <- read_excel("excel_exam.xlsx") # 엑셀 파일을 불러와서 df_exam에 할
당
df_exam # 출력
## # A tibble: 20 x 5
## id class math english science
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 1 50 98 50
## 2 2 1 60 97 60
## 3 3 1 45 86 78
## 4 4 1 30 98 58
## 5 5 2 25 80 65
## 6 6 2 50 89 98
## 7 7 2 80 90 45
## 8 8 2 90 78 25
## 9 9 3 20 98 15
## 10 10 3 50 98 45
## 11 11 3 65 65 65
## 12 12 3 45 85 32
## 13 13 4 46 98 65
## 14 14 4 48 87 12
## 15 15 4 75 56 78
## 16 16 4 58 98 65
## 17 17 5 65 68 98
## 18 18 5 80 78 90
## 19 19 5 89 68 87
## 20 20 5 78 83 58
mean(df_exam$english)
## [1] 84.9
mean(df_exam$science)
## [1] 59.45
Korea Land & Housing Corp.
• 직접 경로 지정
df_exam <- read_excel("d:/easy_r/excel_exam.xlsx")
[주의] Working directory에 불러올 파일이 있어야 함
• 엑셀 파일 첫 번째 행이 변수명이 아니라면?
df_exam_novar <- read_excel("excel_exam_novar.xlsx",
col_names = F)
df_exam_novar
• 엑셀 파일에 시트가 여러 개 있다면?
df_exam_sheet <- read_excel("excel_exam_sheet.xlsx",
sheet = 3)
df_exam_sheet
Korea Land & Housing Corp.
• csv 파일 불러오기
• 범용 데이터 형식
• 값 사이를 쉼표(,)로 구분
• 용량 작음, 다양한 소프트웨어에서 사용
df_csv_exam <- read.csv("csv_exam.csv")
df_csv_exam
## id class math english science
## 1 1 1 50 98 50
## 2 2 1 60 97 60
## 3 3 1 45 86 78
## 4 4 1 30 98 58
## 5 5 2 25 80 65
## 6 6 2 50 89 98
## 7 7 2 80 90 45
## 8 8 2 90 78 25
## 9 9 3 20 98 15
## 10 10 3 50 98 45
## 11 11 3 65 65 65
## 12 12 3 45 85 32
## 13 13 4 46 98 65
## 14 14 4 48 87 12
## 15 15 4 75 56 78
## 16 16 4 58 98 65
## 17 17 5 65 68 98
## 18 18 5 80 78 90
## 19 19 5 89 68 87
## 20 20 5 78 83 58
Korea Land & Housing Corp.
• 문자가 들어 있는 파일을 불러올 때는 stringsAsFactors = F
df_csv_exam <- read.csv("csv_exam.csv", stringsAsFactors = F)
• 데이터 프레임을 CSV 파일로 저장하기
df_midterm <- data.frame(english = c(90, 80, 60, 70),
math = c(50, 60, 100, 20),
class = c(1, 1, 2, 2))
df_midterm
## english math class
## 1 90 50 1
## 2 80 60 1
## 3 60 100 2
## 4 70 20 2
write.csv(df_midterm, file = "df_midterm.csv")
Korea Land & Housing Corp.
• RData 파일 활용하기
• R 전용 데이터 파일
• 용량 작고 빠름
데이터 프레임을 RData 파일로 저장하기
save(df_midterm, file = "df_midterm.rda")
RData 불러오기
rm(df_midterm)
df_midterm
## Error in eval(expr, envir, enclos): object
'df_midterm' not found
load("df_midterm.rda")
df_midterm
## english math class
## 1 90 50 1
## 2 80 60 1
## 3 60 100 2
## 4 70 20 2
Korea Land & Housing Corp.
다른 파일을 불러올 때와 차이점
• 엑셀, CSV는 파일을 불러와 새 변수에 할당해서 활용
• rda는 불러오면 저장한 데이터 프레임이 자동 생성됨. 할당
없이 바로 활용
# 엑셀 파일 불러와 df_exam에 할당하기
df_exam <- read_excel("excel_exam.xlsx")
# csv 파일 불러와 df_csv_exam 에 할당하기
df_csv_exam <- read.csv("csv_exam.csv")
# Rda 파일 불러오기
load("df_midterm.rda")
Korea Land & Housing Corp.
• 정리하기
# 1.변수 만들기, 데이터 프레임 만들기
english <- c(90, 80, 60, 70) # 영어 점수 변수 생성
math <- c(50, 60, 100, 20) # 수학 점수 변수 생성
data.frame(english, math) # 데이터 프레임 생성
# 2. 외부 데이터 이용하기
# 엑셀 파일
library(readxl) # readxl 패키지 로드
df_exam <- read_excel("excel_exam.xlsx") # 엑셀 파일 불러오기
# CSV 파일
df_csv_exam <- read.csv("csv_exam.csv") # CSV 파일 불러오기
write.csv(df_midterm, file = "df_midterm.csv") # CSV 파일로 저장하기
# Rda 파일
load("df_midterm.rda") # Rda 파일 불러오기
save(df_midterm, file = "df_midterm.rda") # Rda 파일로 저장하기
감 사 합 니 다

More Related Content

What's hot

오픈 소스 GIS와 OSGeo
오픈 소스 GIS와 OSGeo오픈 소스 GIS와 OSGeo
오픈 소스 GIS와 OSGeoSANGHEE SHIN
 
공간정보거점대학 PostGIS 고급과정
공간정보거점대학 PostGIS 고급과정공간정보거점대학 PostGIS 고급과정
공간정보거점대학 PostGIS 고급과정JungHwan Yun
 
오픈소스GIS 개론 과정 - OpenLayers 기초
오픈소스GIS 개론 과정 - OpenLayers 기초오픈소스GIS 개론 과정 - OpenLayers 기초
오픈소스GIS 개론 과정 - OpenLayers 기초HaNJiN Lee
 
[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기
[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기
[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기MinPa Lee
 
QGIS를 활용한 공간분석 입문 ver.1.0
QGIS를 활용한 공간분석 입문 ver.1.0QGIS를 활용한 공간분석 입문 ver.1.0
QGIS를 활용한 공간분석 입문 ver.1.0Byeong-Hyeok Yu
 
공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
 공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습 공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습HaNJiN Lee
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료BJ Jang
 
FOSS4G Firenze 2022 참가기
FOSS4G Firenze 2022 참가기FOSS4G Firenze 2022 참가기
FOSS4G Firenze 2022 참가기SANGHEE SHIN
 
DDD로 복잡함 다루기
DDD로 복잡함 다루기DDD로 복잡함 다루기
DDD로 복잡함 다루기beom kyun choi
 
공간정보아카데미 - 오픈소스GIS 분석가과정 - QGIS 공간분석일반
공간정보아카데미 - 오픈소스GIS 분석가과정 - QGIS 공간분석일반공간정보아카데미 - 오픈소스GIS 분석가과정 - QGIS 공간분석일반
공간정보아카데미 - 오픈소스GIS 분석가과정 - QGIS 공간분석일반MinPa Lee
 
공간SQL을 이용한 공간자료분석 기초실습
공간SQL을 이용한 공간자료분석 기초실습공간SQL을 이용한 공간자료분석 기초실습
공간SQL을 이용한 공간자료분석 기초실습BJ Jang
 
Qgis 기초 2019
Qgis 기초 2019Qgis 기초 2019
Qgis 기초 2019Joonho Lee
 
지리정보체계(GIS) - [4] QGIS를 이용한 밀도 추정
지리정보체계(GIS) - [4] QGIS를 이용한 밀도 추정 지리정보체계(GIS) - [4] QGIS를 이용한 밀도 추정
지리정보체계(GIS) - [4] QGIS를 이용한 밀도 추정 Byeong-Hyeok Yu
 
QGIS를 활용한 공간분석 입문(1일 6시간)
QGIS를 활용한 공간분석 입문(1일 6시간)QGIS를 활용한 공간분석 입문(1일 6시간)
QGIS를 활용한 공간분석 입문(1일 6시간)Byeong-Hyeok Yu
 
게임 산업을 위한 네이버클라우드플랫폼(정낙수 클라우드솔루션아키텍트) - 네이버클라우드플랫폼 게임인더스트리데이 Naver Cloud Plat...
게임 산업을 위한 네이버클라우드플랫폼(정낙수 클라우드솔루션아키텍트) - 네이버클라우드플랫폼 게임인더스트리데이 Naver Cloud Plat...게임 산업을 위한 네이버클라우드플랫폼(정낙수 클라우드솔루션아키텍트) - 네이버클라우드플랫폼 게임인더스트리데이 Naver Cloud Plat...
게임 산업을 위한 네이버클라우드플랫폼(정낙수 클라우드솔루션아키텍트) - 네이버클라우드플랫폼 게임인더스트리데이 Naver Cloud Plat...NAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼
 
자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)중선 곽
 
[QGIS] 수치지도를 이용한 DEM 생성과 지형분석
[QGIS] 수치지도를 이용한 DEM 생성과 지형분석[QGIS] 수치지도를 이용한 DEM 생성과 지형분석
[QGIS] 수치지도를 이용한 DEM 생성과 지형분석MinPa Lee
 
GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현
GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현
GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현MinPa Lee
 

What's hot (20)

오픈 소스 GIS와 OSGeo
오픈 소스 GIS와 OSGeo오픈 소스 GIS와 OSGeo
오픈 소스 GIS와 OSGeo
 
공간정보거점대학 PostGIS 고급과정
공간정보거점대학 PostGIS 고급과정공간정보거점대학 PostGIS 고급과정
공간정보거점대학 PostGIS 고급과정
 
GeoServer 기초
GeoServer 기초GeoServer 기초
GeoServer 기초
 
오픈소스GIS 개론 과정 - OpenLayers 기초
오픈소스GIS 개론 과정 - OpenLayers 기초오픈소스GIS 개론 과정 - OpenLayers 기초
오픈소스GIS 개론 과정 - OpenLayers 기초
 
[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기
[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기
[FOSS4G Korea 2017] uDig GIS 효율적으로 활용하기
 
QGIS를 활용한 공간분석 입문 ver.1.0
QGIS를 활용한 공간분석 입문 ver.1.0QGIS를 활용한 공간분석 입문 ver.1.0
QGIS를 활용한 공간분석 입문 ver.1.0
 
공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
 공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습 공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료
 
FOSS4G Firenze 2022 참가기
FOSS4G Firenze 2022 참가기FOSS4G Firenze 2022 참가기
FOSS4G Firenze 2022 참가기
 
DDD로 복잡함 다루기
DDD로 복잡함 다루기DDD로 복잡함 다루기
DDD로 복잡함 다루기
 
공간정보아카데미 - 오픈소스GIS 분석가과정 - QGIS 공간분석일반
공간정보아카데미 - 오픈소스GIS 분석가과정 - QGIS 공간분석일반공간정보아카데미 - 오픈소스GIS 분석가과정 - QGIS 공간분석일반
공간정보아카데미 - 오픈소스GIS 분석가과정 - QGIS 공간분석일반
 
PostGIS 시작하기
PostGIS 시작하기PostGIS 시작하기
PostGIS 시작하기
 
공간SQL을 이용한 공간자료분석 기초실습
공간SQL을 이용한 공간자료분석 기초실습공간SQL을 이용한 공간자료분석 기초실습
공간SQL을 이용한 공간자료분석 기초실습
 
Qgis 기초 2019
Qgis 기초 2019Qgis 기초 2019
Qgis 기초 2019
 
지리정보체계(GIS) - [4] QGIS를 이용한 밀도 추정
지리정보체계(GIS) - [4] QGIS를 이용한 밀도 추정 지리정보체계(GIS) - [4] QGIS를 이용한 밀도 추정
지리정보체계(GIS) - [4] QGIS를 이용한 밀도 추정
 
QGIS를 활용한 공간분석 입문(1일 6시간)
QGIS를 활용한 공간분석 입문(1일 6시간)QGIS를 활용한 공간분석 입문(1일 6시간)
QGIS를 활용한 공간분석 입문(1일 6시간)
 
게임 산업을 위한 네이버클라우드플랫폼(정낙수 클라우드솔루션아키텍트) - 네이버클라우드플랫폼 게임인더스트리데이 Naver Cloud Plat...
게임 산업을 위한 네이버클라우드플랫폼(정낙수 클라우드솔루션아키텍트) - 네이버클라우드플랫폼 게임인더스트리데이 Naver Cloud Plat...게임 산업을 위한 네이버클라우드플랫폼(정낙수 클라우드솔루션아키텍트) - 네이버클라우드플랫폼 게임인더스트리데이 Naver Cloud Plat...
게임 산업을 위한 네이버클라우드플랫폼(정낙수 클라우드솔루션아키텍트) - 네이버클라우드플랫폼 게임인더스트리데이 Naver Cloud Plat...
 
자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)
 
[QGIS] 수치지도를 이용한 DEM 생성과 지형분석
[QGIS] 수치지도를 이용한 DEM 생성과 지형분석[QGIS] 수치지도를 이용한 DEM 생성과 지형분석
[QGIS] 수치지도를 이용한 DEM 생성과 지형분석
 
GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현
GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현
GeoTools와 GeoServer를 이용한 KOPSS Open API의 구현
 

Similar to R project_pt1

불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14 불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14 명신 김
 
R 스터디 첫번째
R 스터디 첫번째R 스터디 첫번째
R 스터디 첫번째Jaeseok Park
 
R 프로그래밍을 이용한 야생동물 행동권(HR) 분석
R 프로그래밍을 이용한 야생동물 행동권(HR) 분석R 프로그래밍을 이용한 야생동물 행동권(HR) 분석
R 프로그래밍을 이용한 야생동물 행동권(HR) 분석Byeong-Hyeok Yu
 
파이썬 스터디 2주차
파이썬 스터디 2주차파이썬 스터디 2주차
파이썬 스터디 2주차Han Sung Kim
 
Scala, Scalability
Scala, ScalabilityScala, Scalability
Scala, ScalabilityDongwook Lee
 
[Week5] Getting started with R
[Week5] Getting started with R[Week5] Getting started with R
[Week5] Getting started with Rneuroassociates
 
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019min woog kim
 
스플렁크 머신러닝 연동
스플렁크 머신러닝 연동스플렁크 머신러닝 연동
스플렁크 머신러닝 연동Seung-Woo Kang
 
스플렁크 Machine Learning Integration
스플렁크 Machine Learning Integration스플렁크 Machine Learning Integration
스플렁크 Machine Learning IntegrationTIMEGATE
 
Programming java day2
Programming java day2Programming java day2
Programming java day2Jaehoonyam
 
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)Sang Don Kim
 
R을 이용한 데이터 분석
R을 이용한 데이터 분석R을 이용한 데이터 분석
R을 이용한 데이터 분석simon park
 
Python programming for Bioinformatics
Python programming for BioinformaticsPython programming for Bioinformatics
Python programming for BioinformaticsHyungyong Kim
 

Similar to R project_pt1 (20)

r project_pt2
r project_pt2r project_pt2
r project_pt2
 
파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)
 
Mylab
MylabMylab
Mylab
 
R intro
R introR intro
R intro
 
파이썬으로 익히는 딥러닝
파이썬으로 익히는 딥러닝파이썬으로 익히는 딥러닝
파이썬으로 익히는 딥러닝
 
불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14 불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14
 
시종설 1조
시종설 1조시종설 1조
시종설 1조
 
R 스터디 첫번째
R 스터디 첫번째R 스터디 첫번째
R 스터디 첫번째
 
R 프로그래밍을 이용한 야생동물 행동권(HR) 분석
R 프로그래밍을 이용한 야생동물 행동권(HR) 분석R 프로그래밍을 이용한 야생동물 행동권(HR) 분석
R 프로그래밍을 이용한 야생동물 행동권(HR) 분석
 
파이썬 스터디 2주차
파이썬 스터디 2주차파이썬 스터디 2주차
파이썬 스터디 2주차
 
Scala, Scalability
Scala, ScalabilityScala, Scalability
Scala, Scalability
 
Scalability
ScalabilityScalability
Scalability
 
[Week5] Getting started with R
[Week5] Getting started with R[Week5] Getting started with R
[Week5] Getting started with R
 
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
 
스플렁크 머신러닝 연동
스플렁크 머신러닝 연동스플렁크 머신러닝 연동
스플렁크 머신러닝 연동
 
스플렁크 Machine Learning Integration
스플렁크 Machine Learning Integration스플렁크 Machine Learning Integration
스플렁크 Machine Learning Integration
 
Programming java day2
Programming java day2Programming java day2
Programming java day2
 
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
 
R을 이용한 데이터 분석
R을 이용한 데이터 분석R을 이용한 데이터 분석
R을 이용한 데이터 분석
 
Python programming for Bioinformatics
Python programming for BioinformaticsPython programming for Bioinformatics
Python programming for Bioinformatics
 

More from Joonho Lee

크라우드소싱 기반의 도시문제 해결
크라우드소싱 기반의 도시문제 해결크라우드소싱 기반의 도시문제 해결
크라우드소싱 기반의 도시문제 해결Joonho Lee
 
[COMPAS] 고양시 공공자전거 분석과제(장려상)
[COMPAS] 고양시 공공자전거 분석과제(장려상)[COMPAS] 고양시 공공자전거 분석과제(장려상)
[COMPAS] 고양시 공공자전거 분석과제(장려상)Joonho Lee
 
[COMPAS] 고양시 공공자전거 분석과제(장려상)
[COMPAS] 고양시 공공자전거 분석과제(장려상)[COMPAS] 고양시 공공자전거 분석과제(장려상)
[COMPAS] 고양시 공공자전거 분석과제(장려상)Joonho Lee
 
[COMPAS] 고양시 공공자전거 분석과제(우수상)
[COMPAS]  고양시 공공자전거 분석과제(우수상)[COMPAS]  고양시 공공자전거 분석과제(우수상)
[COMPAS] 고양시 공공자전거 분석과제(우수상)Joonho Lee
 
[COMPAS] 고양시 공공자전거 분석과제(최우수상)
[COMPAS] 고양시 공공자전거 분석과제(최우수상)[COMPAS] 고양시 공공자전거 분석과제(최우수상)
[COMPAS] 고양시 공공자전거 분석과제(최우수상)Joonho Lee
 
2 QGIS data creation
2 QGIS data creation2 QGIS data creation
2 QGIS data creationJoonho Lee
 
3 qgis visualization
3 qgis visualization3 qgis visualization
3 qgis visualizationJoonho Lee
 
4.patial analysis(1)
4.patial analysis(1)4.patial analysis(1)
4.patial analysis(1)Joonho Lee
 
5_spatial analysis(2)
5_spatial analysis(2)5_spatial analysis(2)
5_spatial analysis(2)Joonho Lee
 
빅데이터 기반의 녹시율 분석
빅데이터 기반의 녹시율 분석빅데이터 기반의 녹시율 분석
빅데이터 기반의 녹시율 분석Joonho Lee
 
데이터학습 보조교재
데이터학습 보조교재데이터학습 보조교재
데이터학습 보조교재Joonho Lee
 

More from Joonho Lee (17)

크라우드소싱 기반의 도시문제 해결
크라우드소싱 기반의 도시문제 해결크라우드소싱 기반의 도시문제 해결
크라우드소싱 기반의 도시문제 해결
 
[COMPAS] 고양시 공공자전거 분석과제(장려상)
[COMPAS] 고양시 공공자전거 분석과제(장려상)[COMPAS] 고양시 공공자전거 분석과제(장려상)
[COMPAS] 고양시 공공자전거 분석과제(장려상)
 
[COMPAS] 고양시 공공자전거 분석과제(장려상)
[COMPAS] 고양시 공공자전거 분석과제(장려상)[COMPAS] 고양시 공공자전거 분석과제(장려상)
[COMPAS] 고양시 공공자전거 분석과제(장려상)
 
[COMPAS] 고양시 공공자전거 분석과제(우수상)
[COMPAS]  고양시 공공자전거 분석과제(우수상)[COMPAS]  고양시 공공자전거 분석과제(우수상)
[COMPAS] 고양시 공공자전거 분석과제(우수상)
 
[COMPAS] 고양시 공공자전거 분석과제(최우수상)
[COMPAS] 고양시 공공자전거 분석과제(최우수상)[COMPAS] 고양시 공공자전거 분석과제(최우수상)
[COMPAS] 고양시 공공자전거 분석과제(최우수상)
 
web geocoder
web geocoder web geocoder
web geocoder
 
1 QGIS intro
1 QGIS intro1 QGIS intro
1 QGIS intro
 
2 QGIS data creation
2 QGIS data creation2 QGIS data creation
2 QGIS data creation
 
3 qgis visualization
3 qgis visualization3 qgis visualization
3 qgis visualization
 
6 QGIS layout
6 QGIS layout6 QGIS layout
6 QGIS layout
 
4.patial analysis(1)
4.patial analysis(1)4.patial analysis(1)
4.patial analysis(1)
 
5_spatial analysis(2)
5_spatial analysis(2)5_spatial analysis(2)
5_spatial analysis(2)
 
Lego map_qgis
Lego map_qgisLego map_qgis
Lego map_qgis
 
191003 compas
191003 compas191003 compas
191003 compas
 
191002 COMPAS
191002 COMPAS191002 COMPAS
191002 COMPAS
 
빅데이터 기반의 녹시율 분석
빅데이터 기반의 녹시율 분석빅데이터 기반의 녹시율 분석
빅데이터 기반의 녹시율 분석
 
데이터학습 보조교재
데이터학습 보조교재데이터학습 보조교재
데이터학습 보조교재
 

R project_pt1

  • 1. 실무를 위한 R 프로그래밍(1) 한국토지주택공사 스마트도시개발처 스마트시티 빅데이터팀
  • 2. 소 개 이준호 스마트시티 빅데이터팀 류영상 스마트시티 빅데이터팀  본 교재는 ‘쉽게 배우는 R 데이터 분석’을 참고하여 정리하였습니다.  실습데이터는 저자의 깃허브에 다운로드 하실 수 있습니다. (http://bit.ly/start_r )
  • 3. 강의 순서 1. R? 2. R 환경설정 3. 변수와 함수 4. 데이터프레임
  • 4. Korea Land & Housing Corp. 1. R? • 오클랜드 대학의 로스 이하카(Ross Ihaka)와 로버트 젠틀맨(Robort Gentleman)이 1990년대 초 처음 공개 • 전 세계에 걸쳐 데이터전문가들이 애용하는 통계 프로그래밍 언어이자, 계산 및 시각화를 지원하는 데이터 분석 프로그램  특징 • 무료로 사용 • 인터프리터 언어 • 12,000개 이상의 통계분석 패키지 제공 • 강력한 시각화 기능  R 다운로드와 설치 • R 의공식홈페이지 : http://www.r-project.org • 이곳은R 설치파일을다운로드 받을 수 있으며, R이 제공하는 각종문서들을 함께 볼 수 있음
  • 5. Korea Land & Housing Corp. 1-1. R Studio  Command Line에서 명령어를 입력하는 것은 불편하므로 R studio를 설치해서 작업하는 것이 편리  다운로드위치 https://rstudio.com/products/rstudio/download/
  • 6. Korea Land & Housing Corp.
  • 7. Korea Land & Housing Corp. 콘솔창 환경창 파일/플롯/패키지/헬프/뷰어  Rstudio 구성 소스창
  • 8. Korea Land & Housing Corp.  주요 명령어 ctrl + shift + c : 주석처리 ctrl + shift + m : 파이프연산자(%>%) file.choose( ) : 탐색기 ctrl + spacebar : 단축어 명령어 표출 ctrl + enter : 실행 floor : 정수만 표출 getwd() : 작업디렉토리 확인 setwd() : 작업디렉토리 설정
  • 9. Korea Land & Housing Corp. 2. R 환경설정  워킹 디렉토리 • R에서 파일을 불러오거나 저장할 때 사용하는 폴더  프로젝트 만들기 • 소스코드, 이미지, 문서, 외부프로그램에서 생성된 자료 등 수많은 파일을 활용하게 되는데, 파일들을 프로젝트 폴더별로 관리하면 편리함
  • 10. Korea Land & Housing Corp. 프로젝트 이름과 폴더경로에 한글이 들어가면 오류발생 경로 디렉토리 명
  • 11. Korea Land & Housing Corp.  Soft-wrap 자동 줄바꾸기 옵션 설정 • 명령어가 길어지면 화면 밖으로 넘어가지 않고 자동으로 줄을 바꿈
  • 12. Korea Land & Housing Corp.  인코딩 방식 글자가 깨질경우 인코딩을 변경
  • 13. Korea Land & Housing Corp. 3-1. 변수 변수(Variable) • 다양한 값을 지니고 있는 하나의 속성 • 변수는 데이터 분석의 대상
  • 14. Korea Land & Housing Corp.  변수 만들기 a <- 1 a ## [1] 1 b <- 2 b ## [1] 2 c <- 3 c ## [1] 3 d <- 3.5 d ## [1] 3.5 a+b ## [1] 3 a+b+c ## [1] 6 4/b ## [1] 2 5*b ## [1] 10 변수로 연산하기
  • 15. Korea Land & Housing Corp.
  • 16. Korea Land & Housing Corp.
  • 17. Korea Land & Housing Corp. 여러 값으로 구성된 변수 만들기 var1 <- c(1, 2, 5, 7, 8) # 숫자 다섯 개로 구성된 var1 생성 var1 ## [1] 1 2 5 7 8 var2 <- c(1:5) # 1~5까지 연속값으로 var2 생성 var2 ## [1] 1 2 3 4 5 • c() • seq() var3 <- seq(1, 5) # 1~5까지 연속값으로 var3 생성 var3 ## [1] 1 2 3 4 5 var4 <- seq(1, 10, by = 2) # 1~10까지 2 간격 연속값으로 var4 생성 var4 ## [1] 1 3 5 7 9 var5 <- seq(1, 10, by = 3) # 1~10까지 3 간격 연속값으로 var5 생성 var5 ## [1] 1 4 7 10  c()함수의 c는 ‘합치다’를 의미하는 ‘combine’
  • 18. Korea Land & Housing Corp. • 연속값 변수로 연산하기 var1 ## [1] 1 2 5 7 8 var1+2 ## [1] 3 4 7 9 10 var1 ## [1] 1 2 5 7 8 var2 ## [1] 1 2 3 4 5 var1+var2 ## [1] 2 4 8 11 13 • 문자로 된 변수 만들기 str1 <- "a" str1 ## [1] "a" str2 <- "text" str2 ## [1] "text" str3 <- "Hello World!" str3 ## [1] "Hello World!"
  • 19. Korea Land & Housing Corp. • 연속문자 변수 만들기 str4 <- c("a", "b", "c") str4 ## [1] "a" "b" "c" str5 <- c("Hello!", "World", "is", "good!") str5 ## [1] "Hello!" "World" "is" "good!"
  • 20. Korea Land & Housing Corp. 3-2. 함수 함수 • 값을 넣으면 특정한 기능을 수행해 처음과 다른 값이 출력됨
  • 21. Korea Land & Housing Corp. • 숫자를 다루는 함수 이용하기 # 변수 만들기 x <- c(1, 2, 3) x ## [1] 1 2 3 # 함수 적용하기 mean(x) ## [1] 2 max(x) ## [1] 3 min(x) ## [1] 1 • 문자를 다루는 함수 이용하기 str5 ## [1] "Hello!" "World" "is" "good!" paste(str5, collapse = ",") # 쉼표를 구분자로 str5의 단어들 하나로 합치기 ## [1] "Hello!,World,is,good!"
  • 22. Korea Land & Housing Corp. • 함수의 옵션 설정하기 – 파라미터(collapse) paste(str5, collapse = " ") ## [1] "Hello! World is good!" • 함수의 결과물로 새 변수 만들기 x_mean <- mean(x) x_mean ## [1] 2 str5_paste <- paste(str5, collapse = " ") str5_paste ## [1] "Hello! World is good!"
  • 23. Korea Land & Housing Corp.
  • 24. Korea Land & Housing Corp. 3-3. 패키지 패키지(packages) • 함수가 여러 개 들어 있는 꾸러미 • 하나의 패키지 안에 다양한 함수가 들어있음 • 함수를 사용하려면 패키지 설치 먼저 해야함
  • 25. Korea Land & Housing Corp. • ggplot2 패키지 설치하기, 로드하기 install.packages("ggplot2") # ggplot2 패키지 설치 library(ggplot2) # ggplot2 패키지 로드 • 함수 사용하기 # 여러 문자로 구성된 변수 생성 x <- c("a", "a", "b", "c") x ## [1] "a" "a" "b" "c" # 빈도 그래프 출력 qplot(x)
  • 26. Korea Land & Housing Corp. • ggplot2의 mpg 데이터로 그래프 만들기 # data에 mpg, x축에 hwy 변수 지정하여 그 래프 생성 qplot(data = mpg, x = hwy)
  • 27. Korea Land & Housing Corp. • qplot() 파라미터 바꿔보기 # x축 cty qplot(data = mpg, x = cty) # x축 drv, y축 hwy qplot(data = mpg, x = drv, y = hwy)
  • 28. Korea Land & Housing Corp. # x축 drv, y축 hwy, 선 그래프 형태 qplot(data = mpg, x = drv, y = hwy, geom = "line") # x축 drv, y축 hwy, 상자 그림 형태 qplot(data = mpg, x = drv, y = hwy, geom = "boxplot")
  • 29. Korea Land & Housing Corp. # x축 drv, y축 hwy, 상자 그림 형태, drv별 색 표현 qplot(data = mpg, x = drv, y = hwy, geom = "boxplot", colour = drv) 함수의 기능이 궁금할 땐 Help 함수를 활용해 보세요 ?qplot
  • 30. Korea Land & Housing Corp. 혼자서 해보기 Q1. 시험 점수 변수 만들고 출력하기 다섯 명의 학생이 시험을 봤습니다. 학생 다섯 명의 시험 점수를 담고 있는 변수를 만들어 출력 해 보세요. 각 학생의 시험 점수는 다음과 같습니다. 80, 60, 70, 50, 90 Q2. 전체 평균 구하기 앞 문제에서 만든 변수를 이용해서 이 학생들의 전체 평균 점수를 구해보세요. Q3. 전체 평균 변수 만들고 출력하기 전체 평균 점수를 담고 있는 새 변수를 만들어 출력해 보세요. 앞 문제를 풀 때 사용한 코드를 응 용하면 됩니다.
  • 31. Korea Land & Housing Corp. 4-1. 데이터프레임 • '열'은 속성 • '행'은 한 사람의 정보
  • 32. Korea Land & Housing Corp. • 데이터가 크다 = 행이 많다 또는 열이 많다
  • 33. Korea Land & Housing Corp. 4-2. 데이터프레임 만들기 – 시험성적 데이터 • 데이터 입력해 데이터 프레임 만들기 english <- c(90, 80, 60, 70) # 영어 점수 변수 생성 english ## [1] 90 80 60 70 math <- c(50, 60, 100, 20) # 수학 점수 변수 생성 math ## [1] 50 60 100 20 # english, math로 데이터 프레임 생성해서 df_midterm에 할 당 df_midterm <- data.frame(english, math) df_midterm ## english math ## 1 90 50 ## 2 80 60 ## 3 60 100 ## 4 70 20 class <- c(1, 1, 2, 2) class ## [1] 1 1 2 2 df_midterm <- data.frame(english, math, class) df_midterm ## english math class ## 1 90 50 1 ## 2 80 60 1 ## 3 60 100 2 ## 4 70 20 2 mean(df_midterm$english) # df_midterm의 english로 평균 산출 ## [1] 75 mean(df_midterm$math) # df_midterm의 math로 평균 산 술 ## [1] 57.5
  • 34. Korea Land & Housing Corp. • 데이터 프레임 한 번에 만들기 df_midterm <- data.frame(english = c(90, 80, 60, 70), math = c(50, 60, 100, 20), class = c(1, 1, 2, 2)) df_midterm ## english math class ## 1 90 50 1 ## 2 80 60 1 ## 3 60 100 2 ## 4 70 20 2 • 혼자서 해보기 Q1. data.frame()과 c()를 조합해서 표의 내용을 데이터 프레임으로 만들어 출력해보세요. 제품 가격 판매량 사과 1800 24 딸기 1500 38 수박 3000 13 Q2. 앞에서 만든 데이터 프레임을 이용해서 과일 가격 평균, 판매량 평균을 구해보세요.
  • 35. Korea Land & Housing Corp. 4-3. 외부데이터 이용하기 – 시험성적 데이터 • 엑셀 파일 불러오기 # readxl 패키지 설치 install.packages("readxl") # readxl 패키지 로드 library(readxl) df_exam <- read_excel("excel_exam.xlsx") # 엑셀 파일을 불러와서 df_exam에 할 당 df_exam # 출력 ## # A tibble: 20 x 5 ## id class math english science ## <dbl> <dbl> <dbl> <dbl> <dbl> ## 1 1 1 50 98 50 ## 2 2 1 60 97 60 ## 3 3 1 45 86 78 ## 4 4 1 30 98 58 ## 5 5 2 25 80 65 ## 6 6 2 50 89 98 ## 7 7 2 80 90 45 ## 8 8 2 90 78 25 ## 9 9 3 20 98 15 ## 10 10 3 50 98 45 ## 11 11 3 65 65 65 ## 12 12 3 45 85 32 ## 13 13 4 46 98 65 ## 14 14 4 48 87 12 ## 15 15 4 75 56 78 ## 16 16 4 58 98 65 ## 17 17 5 65 68 98 ## 18 18 5 80 78 90 ## 19 19 5 89 68 87 ## 20 20 5 78 83 58 mean(df_exam$english) ## [1] 84.9 mean(df_exam$science) ## [1] 59.45
  • 36. Korea Land & Housing Corp. • 직접 경로 지정 df_exam <- read_excel("d:/easy_r/excel_exam.xlsx") [주의] Working directory에 불러올 파일이 있어야 함 • 엑셀 파일 첫 번째 행이 변수명이 아니라면? df_exam_novar <- read_excel("excel_exam_novar.xlsx", col_names = F) df_exam_novar • 엑셀 파일에 시트가 여러 개 있다면? df_exam_sheet <- read_excel("excel_exam_sheet.xlsx", sheet = 3) df_exam_sheet
  • 37. Korea Land & Housing Corp. • csv 파일 불러오기 • 범용 데이터 형식 • 값 사이를 쉼표(,)로 구분 • 용량 작음, 다양한 소프트웨어에서 사용 df_csv_exam <- read.csv("csv_exam.csv") df_csv_exam ## id class math english science ## 1 1 1 50 98 50 ## 2 2 1 60 97 60 ## 3 3 1 45 86 78 ## 4 4 1 30 98 58 ## 5 5 2 25 80 65 ## 6 6 2 50 89 98 ## 7 7 2 80 90 45 ## 8 8 2 90 78 25 ## 9 9 3 20 98 15 ## 10 10 3 50 98 45 ## 11 11 3 65 65 65 ## 12 12 3 45 85 32 ## 13 13 4 46 98 65 ## 14 14 4 48 87 12 ## 15 15 4 75 56 78 ## 16 16 4 58 98 65 ## 17 17 5 65 68 98 ## 18 18 5 80 78 90 ## 19 19 5 89 68 87 ## 20 20 5 78 83 58
  • 38. Korea Land & Housing Corp. • 문자가 들어 있는 파일을 불러올 때는 stringsAsFactors = F df_csv_exam <- read.csv("csv_exam.csv", stringsAsFactors = F) • 데이터 프레임을 CSV 파일로 저장하기 df_midterm <- data.frame(english = c(90, 80, 60, 70), math = c(50, 60, 100, 20), class = c(1, 1, 2, 2)) df_midterm ## english math class ## 1 90 50 1 ## 2 80 60 1 ## 3 60 100 2 ## 4 70 20 2 write.csv(df_midterm, file = "df_midterm.csv")
  • 39. Korea Land & Housing Corp. • RData 파일 활용하기 • R 전용 데이터 파일 • 용량 작고 빠름 데이터 프레임을 RData 파일로 저장하기 save(df_midterm, file = "df_midterm.rda") RData 불러오기 rm(df_midterm) df_midterm ## Error in eval(expr, envir, enclos): object 'df_midterm' not found load("df_midterm.rda") df_midterm ## english math class ## 1 90 50 1 ## 2 80 60 1 ## 3 60 100 2 ## 4 70 20 2
  • 40. Korea Land & Housing Corp. 다른 파일을 불러올 때와 차이점 • 엑셀, CSV는 파일을 불러와 새 변수에 할당해서 활용 • rda는 불러오면 저장한 데이터 프레임이 자동 생성됨. 할당 없이 바로 활용 # 엑셀 파일 불러와 df_exam에 할당하기 df_exam <- read_excel("excel_exam.xlsx") # csv 파일 불러와 df_csv_exam 에 할당하기 df_csv_exam <- read.csv("csv_exam.csv") # Rda 파일 불러오기 load("df_midterm.rda")
  • 41. Korea Land & Housing Corp. • 정리하기 # 1.변수 만들기, 데이터 프레임 만들기 english <- c(90, 80, 60, 70) # 영어 점수 변수 생성 math <- c(50, 60, 100, 20) # 수학 점수 변수 생성 data.frame(english, math) # 데이터 프레임 생성 # 2. 외부 데이터 이용하기 # 엑셀 파일 library(readxl) # readxl 패키지 로드 df_exam <- read_excel("excel_exam.xlsx") # 엑셀 파일 불러오기 # CSV 파일 df_csv_exam <- read.csv("csv_exam.csv") # CSV 파일 불러오기 write.csv(df_midterm, file = "df_midterm.csv") # CSV 파일로 저장하기 # Rda 파일 load("df_midterm.rda") # Rda 파일 불러오기 save(df_midterm, file = "df_midterm.rda") # Rda 파일로 저장하기
  • 42. 감 사 합 니 다