소프트웨어시스템실습 3강: R 프로그래밍 및 데이터 조작

Slides:



Advertisements
Similar presentations
Datamining Lab 이아람.  How to count the matches The cat ate the bird.  Token : 5/Type : 4.
Advertisements

2014 년 가을학기 손시운 지도 교수 : 문양세 교수님.
Copyright © 2006 The McGraw-Hill Companies, Inc. 프로그래밍 언어론 2nd edition Tucker and Noonan 5 장 타입 “ 타입은 컴퓨터 프로그래밍의 효소이다 ; 프로그래밍은 타입을 통해 소화할만한 것이 된다.” 로빈.
R 언어의 기초 담당교수명 : 서 영 민 연 락 처 :
좋은 강의 국제관계학과 정연식.
제 1장 자바스크립트란 ?.
DB2 Information Management DB2 UDB CLP Command Summary.
(HiveMall Work Process)
SQL 0613.
C++ Espresso 제3장 배열과 포인터.
한글 엑셀 3. 자료의 가공 • 수식 사용하기 • 함수 사용하기 • 자료 정렬하기 • 부분합 구하기 • 피벗 테이블 만들기.
R 실행. 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
SAP QUERY SAP R/3 4.6C.
3 순차 자료구조와 선형 리스트.
오라클 데이터베이스 성능 튜닝.
Database & Internet Computing Laboratory 한 양 대 학 교
데이터 관리의 모든 것 데이터 최적화하기 데이터 정렬하기 자동 필터와 고급 필터
채팅 서버 만들기 10장 Do it! Node.js 프로그래밍 이지스퍼블리싱 제공 강의 교안 2017/03
Machine Learning Network Data Science Lab Seunghun Lee, KangHee Lee
알고리즘(Algorithm)  알고리즘 개요 (효율, 분석, 차수) Part 1 강원대학교 컴퓨터과학전공 문양세.
쉽게 풀어쓴 C언어 Express 제8장 함수 C Express Slide 1 (of 26)
엑셀을 이용한 테이블 자료 분석 한국어 정보의 전산 처리
롯데마트 CRM 데이터 분석 교육 2014년 12월 > RE::VISION 전용준 리비젼컨설팅 대표
Lab Assignment 2 Neural Network & Ensemble Data Mining 2016 Fall 1 1.
2014년 가을학기 손시운 지도 교수: 문양세 교수님 벡터 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
IS lab. 김건영 Awk, Posting list IS lab. 김건영
뷰와 저장 프로시저 뷰의 개념을 이해한다. 뷰의 정의와 관리 방법을 이해한다. 뷰를 사용함으로써 생기는 장점을 알아본다.
컴퓨터 활용 및 실습 Chapter 3 수식과 함수 김 정 석
머신 러닝 2 ㈜ 퀀트랩.
쉽게 풀어쓴 C언어 Express 제10장 배열 C Express.
2014년 가을학기 손시운 지도 교수: 문양세 교수님 군집 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
Lab Assignment 3 Deep Learning 1 1.
소프트웨어시스템실습 4강: 데이터 시각화 (그래프)
기초 프로그래밍 Yang-Sae Moon Department of Computer Science
(Data Exploration & Analysis)
제8장 특허소송.
' Strategic Alliance Partner with '
2014년 가을학기 손시운 지도 교수: 문양세 교수님 분류 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
Database 중고차 매매 DB 비즈니스IT 윤동섭.
과거사 청산, 밝은 미래를 위하여 역사 청산 비교 분석-독일과 우리나라.
화재발생시 행동요령 1. 발화초기의 안전조치 2. 화재신고 3. 피난유도 및 대피요령
알고리즘(Algorithm)  알고리즘 개요 (효율, 분석, 차수) Part 년 봄학기
기계학습과 R 실습.
계산제어.
ESCO사업 안내 및 투자사례.
프로그래밍 기초와 실습 Chapter 11 Recursion.
CHAP 11 : 해싱.
어린이집.
C89(C++03) 프로그래밍 (Part 2) 7 배열 8 변수 범위 9 포인터 10 유도 자료형.
2014년 가을학기 손시운 지도 교수: 문양세 교수님 데이터 프레임 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
CHAP 12:탐색 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
CHAP 12 : 탐색 C로 쉽게 풀어쓴 자료구조 생능출판사 2011.
점화와 응용 (Recurrence and Its Applications)
타인을 내편으로 만드는 12가지 방법 고객서비스팀.
알고리즘 강의 슬라이드 2 분할정복 제 2 장 분할정복 도경구역, 알고리즘, 사이텍미디어, 1999.
Chapter 08 조건문.
이산수학(Discrete Mathematics)
전류는 자계에서 힘을 받는다 기계공학교육 박지훈 황인석 한만혁 이덕균.
‘e-posteel’ 매뉴얼[고객사]
테이블 데이터 처리용 command line tool들
R을 활용한 기초통계 2019년 3월 14일 (목) 김 철 기.
房思琪的初恋乐园 ‘팡쓰치’로 보는 문학의 힘 정은비.
2014년 가을학기 손시운 지도 교수: 문양세 교수님 행렬과 배열 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
3차원에서 강체의 운동 : 회전축이 바뀔 수 있음 9.1. 임의의 축에 대한 강체의 회전 : 관성 모멘트, 각운동량, 운동에너지.
에서 트리니티 아이디와 패스워드 치기 Download, Packages CRAN
<정보이론(Information Theory)> 제8장 채널의 특성과 상호정보
우수사원 연수 제안서 2-1. 항공, 호텔, 식사, 차량 세부 안내 (지역순서대로 작성 발리-싱가포르-괌)
PHP 기초문법 PHP를 공부하는데 있어 가장 기초가 되는 PHP기초문법에 대해서 배워 봅니다.
9장 부프로그램 순천향대학교 컴퓨터공학부 하 상 호.
ISL 트렁크로 VLAN 정보들이 함께 다닌다.
Presentation transcript:

소프트웨어시스템실습 3강: R 프로그래밍 및 데이터 조작

조건문 문법 if(cond) { 문장} else {문장} ifelse(test, yes, no)

반복문 … … …

연산 수치연산

벡터 연산

벡터 연산

결측치(NA)의 처리

함수 정의 함수명 <- function(인자, 인자, ....) { 함수 본문 }

함수 반환 방법 return(반환값) # ()생략 불가능

함수 인자 지정 가변길이 인자

변수 scope 콘솔에서 변수를 선언하면 모든 곳에서 사용 가능 함수내부에서 선언 함수 내에서만 사용가능 서로 다른 변수

변수 scope rm(list=ls())는 모든 객체를 삭제하는 명령

Call by value

객체의 삭제 ls() 메모리 상에 만들어진 객체의 목록 객체 x를 삭제 모든 객체를 삭제

iris 데이터

iris 데이터 Species: Sepal.Width Sepal.Length Petal.Width Petal.Length 붓꽃의 종. setosa, versicolor, virginica의 세가지 값중 하나를 저장한 범주형 변수. Sepal.Width 꽃받침의 너비. Number 변수. Sepal.Length 꽃받침의 길이. Number 변수. Petal.Width 꽃잎의 너비. Number 변수. Petal.Length 꽃잎의 길이. Number 변수. 그 이외의 dataset을 보려면 library(help=datasets)

파일 입출력 CSV파일 read.csv(파일명, header=TRUE) #header가 있는 경우(default) eg) a.csv

파일 입출력 csv 파일에 헤더행이 없다면 다음과 같이 header=FALSE를 지정

파일 입출력 기본적으로 문자열은 모두 Factor형태로 변환 문자열로 사용하려면 재변화해야함 입력단계에서 문자열로 입력 받으려면

파일 입출력 NA 지정 문자열이 있을 경우 자료형이 제대로 설정안됨

파일 입출력

csv 파일로의 저장 row.names = T로 지정하면 행번호가 출력됨

객체의 파일 입출력 Binary 형태로 객체를 입출력

데이터 프레임의 행과 열 병합 rbind(), cbind() 행렬이나 데이터 프레임의 데이터 병합

데이터 프레임의 행과 열 병합 지정 안하면 name 컬럼은 Factor형이 되므로 a와 b이외에는 추가 못함

데이터 프레임의 행과 열 병합

데이터 프레임의 행과 열 병합 데이터 프레임에 새로운 열을 추가할 때는 cbind() 를 사용하지 않고 ‘변수명$컬럼명 <-데이터’ 형태로도 열을 추가할 수 있음

Apply 계열함수들

apply() apply(행렬, 방향,함수) #벡터에는 적용 안됨 ‘방향’은 1이 주어지면 행, 2가 주어지면 열

apply() 자주 사용하므로 rowSums(), colSums() 함수가 정의되어 있음 rowMeans() 또는 colMeans()도 사용 가능

apply() 주의 최소 2columns 이상만 적용 가능 apply ( iris [, 1] , 2, sum )나 colSums ( iris [, 1]) 같이 1 column은 사용 못함 최소 2columns 이상만 적용 가능 벡터 형태이므로 이 경우는 sum( iris [, 1] )과 같이sum을 이용해야 함

lapply() lapply(X, 함수) ‘X’는 벡터 또는 리스트, 데이터 프레임 등 가능 결과는 list 형태 예) 입력이 벡터 형태 리스트를 벡터로 변환

lapply() 입력이 리스트 형태

lapply() 입력이 프레임 형태 colMeans로도 계산 가능

lapply() lapply()로 데이터 프레임을 처리한 결과는 리스트임 리스트를 데이터 프레임으로 변환 방법 unlist()로 벡터로 변환 matrix()로 1 X 4 matrix로 변환 (생략하면 1 column으로 변환됨) 벡터를 직접 데이터 프레임으로 바꾸면 1column 프레임으로 변환됨 as.data.frame()으로 데이터 프레임으로 변환

lapply() 데이터 프레임으로 바꾸는 다른 방법 do.call()을 이용 lapply의 결과인 리스트를 cbind의 인자로 넣어 결과를 얻음 결과는 list 각 요소가 column으로 결합된 matrix 형태

sapply() lapply()와 유사하지만 리스트대신 행렬, 벡터 등으로 결과를 반환 입력: 벡터, 리스트, 데이터 프레임 등 결과는 벡터

sapply() 데이터 프레임으로 변환 t(x)를 사용해 벡터의 행과 열을 바꿔주지 않으면 기대한 것과 다른 모양의 데이터 프레임을 얻게 됨 아래의 예에서 x는 vector임. t(x)를 실행하면 1 X 4의 matrix가 생성됨

sapply() 결과가 matrix인 sapply의 예

tapply 그룹별 처리를 위한 apply 함수 tapply(데이터, 색인, 함수) 예) 1부터 10까지의 숫자가있고 이들이 모두 한 그룹에 속해있을때 각 그룹에 속한 데이터의 합 예) 짝수, 홀수별 합 iris데이터에서 Species별 Sepal.Length의 평균

tapply 반기별 남성 셀의 합과 여성 셀의 합

summary

order 데이터를 정렬하기 위한 순서를 반환 정렬 여러 개의 정렬기준 iris [ order ( iris $ Sepal.Width, iris $ Sepal.Length) ,]

데이터 분리(split, subset) split(데이터, 분리조건) 결과는 분리된 데이터가 저장된 리스트

데이터 분리(split, subset) 위 결과에 lapply()를 적용해서 iris의 종별 Sepal.Length의 평균을 구할 수 있음

데이터 분리(split, subset) subset 조건에 맞는 특정 부분만 찾음 벡터간 연산이므로 &&가 아님

데이터 분리(split, subset) 특정 열을 선택: select 인자로 지정

데이터 병합(merge) Database의 조인과 같음 cbind는 단순 결합

공통된 이름이 없는 경우에는 한쪽에 데이터가 없게 되는데 이 경우 값을 NA로 채우면서 전체 데이터를 모두 합치려면 다음과 같이 all 인자에 TRUE를 지정

정렬(sort, order) sort() order() 벡터를 정렬 정렬하기 위한 색인(순서)을 반환 큰 수부터 정렬하려면 x대신에 –x를 사용하여 음수로 만듦

with, within with(data, expression)

with, within within: 데이터 수정에 사용 예는 다음 페이지

생략하면 결과가 NA로 나옴 동일한 기능

attach, detach attach는 인자로 주어진 데이터 프레임이나 리스트를 곧바로 접근. 해제는 detach

attach, detach 주의: attach()한 변수값은 detach()시 원래의 데이터 프레임에는 반영되지 않음

조건에 맞는 데이터 색인 찾기 조건에 맞는 값 자체를 찾을 때는 subset이나 조건문 지정 … …

조건에 맞는 데이터 색인 찾기 which: 조건에 맞는 색인(위치) 찾기