R R ...

Similar documents
PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

설계란 무엇인가?

Microsoft PowerPoint - chap06-2pointer.ppt

R-1: R intro. & Objects

금오공대 컴퓨터공학전공 강의자료

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

adfasdfasfdasfasfadf

Microsoft PowerPoint - ch07 - 포인터 pm0415

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Microsoft PowerPoint Predicates and Quantifiers.ppt

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

PowerPoint Presentation

Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

슬라이드 1

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - logo_3.ppt [호환 모드]

설계란 무엇인가?

11장 포인터

OCW_C언어 기초

컴파일러

PowerPoint Presentation

Visual Basic 반복문

Data Structure

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

R t-..

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Observational Determinism for Concurrent Program Security

PowerPoint 프레젠테이션

강의 개요

PowerPoint Presentation

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

JAVA PROGRAMMING 실습 02. 표준 입출력

슬라이드 1

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

Microsoft PowerPoint - chap11-포인터의활용.pptx

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

Microsoft PowerPoint - chap06-1Array.ppt

Tcl의 문법

OCW_C언어 기초

C++ Programming

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Microsoft PowerPoint - chap04-연산자.pptx

JAVA PROGRAMMING 실습 02. 표준 입출력

chap 5: Trees

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

Microsoft PowerPoint - 제11장 포인터(강의)

R

Microsoft PowerPoint - C++ 5 .pptx

Columns 8 through while expression {commands} 예제 1.2 (While 반복문의이용 ) >> num=0

Microsoft PowerPoint - chap-11.pptx

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

PowerPoint 프레젠테이션

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

Microsoft PowerPoint - LA_ch6_1 [호환 모드]

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

Microsoft PowerPoint - additional01.ppt [호환 모드]

02장.배열과 클래스

PowerPoint Presentation

PowerPoint Presentation

PowerPoint 프레젠테이션

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>

Microsoft PowerPoint - 제11장 포인터

슬라이드 1

Modern Javascript

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

< 고급 C 프로그래밍및실습 > 11 장구조체실습문제 문제에대한안내 - 특별한언급이없으면문제의조건에맞지않는입력은입력되지않는다고가정하라. - 특별한언급이없으면, 각줄의맨앞과맨뒤에는공백을출력하지않는다. - 출력예시에서 는각줄의맨앞과맨뒤에출력되는공백을의미한다. - 입출력예시

10장 리스트

A Review of C Programming

Microsoft PowerPoint - chap10-함수의활용.pptx

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

API 매뉴얼

PowerPoint Template

쉽게

chap x: G입력

JVM 메모리구조

Microsoft PowerPoint - e pptx

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft Word - FunctionCall

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

Microsoft PowerPoint 세션.ppt

Microsoft PowerPoint - MDA 2008Fall Ch2 Matrix.pptx

PowerPoint Presentation

PowerPoint Template

02-1기록도전( )

목 록( 目 錄 )

03-1영역형( )

Chap 6: Graphs

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

17장 클래스와 메소드

Microsoft PowerPoint - chap06-5 [호환 모드]

목차 배열의개요 배열사용하기 다차원배열 배열을이용한문자열다루기 실무응용예제 C 2

Microsoft PowerPoint - 제3장-배열.pptx

Microsoft PowerPoint - chap-03.pptx

Transcription:

R과 데이터분석 R 데이터 양창모 청주교육대학교 컴퓨터교육과 2015년 겨울 R에서 지원하는 데이터 타입 I R에서는 일반적인 프로그래밍 언어에서 흔히 사용되는 정수, 부동소수, 문자열이 기본적으로 지원된다. I 그외에도 자료처리에 적합한 자료구조인 벡터vector, 행렬matrix, 데이터 프레임data frame, 리스트list 등이 있다. R에서 지원하는 데이터 타입 변수 variable I R의 변수명은 알파벳, 숫자, _,. 로 구성되며 I 첫 글자는 알파벳 또는. 으로 시작해야한다. I. 으로 시작하면 뒤에는 숫자가 올 수 없다. I 변수에 값을 할당할때는 < 또는 << 또는 = 를 사용한다.

R 의기본형은벡터이므로이들스칼라자료는길이 1 의벡터로볼수 있다. 숫자 정수, 실수등 > a <- 3 > b <- 4.5 > c <- a + b > print(c) [1] 7.5 NA 데이터에값이존재하지않는다면 NA 로표시 어떤변수에 NA 가저장되어있는지는 is.na() 함수로확인 > one <- 100 > two <- 75 > three <- 80 > four <- NA > is.na(four) [1] TRUE 문자열 character string this is string 또는 "this is string" 과같이어느따옴표로묶인것 > a <- "hello" > print(a) [1] "hello"

진리값 truth value TRUE, T 는모두참값을말한다. FALSE, F 는거짓을말한다. 진리값에는 &(AND), (OR),! (NOT) 연산자를사용할수있다. > TRUE & TRUE [1] TRUE > TRUE & FALSE [1] FALSE > TRUE TRUE [1] TRUE > TRUE FALSE [1] TRUE >!TRUE [1] FALSE >!FALSE [1] TRUE 진리값 truth value 밀히말하면 TRUE 와 FALSE 는예약어 reserved words 즉, 상수 값이며 T, F 는각각 TRUE 와 FALSE 로초기화된전역변수 T 에 FALSE 를할당하는것이가능하지만 TRUE 에는 FALSE 를 할당할수없다. > T <- FALSE > TRUE <- FALSE Error in TRUE <- FALSE :... 진리값 truth value AND 나 OR 연산자에는 &, 외에도 && 와 가있다. &, 는부울값이저장된벡터끼리의연산시각원소간계산을 한다는점이다. &&, 는하나의부울값끼리연산을한다. > c(true, TRUE) & c(true, FALSE) [1] TRUE FALSE Factor 범주형 Categorical 변수를위한데이터타입 > sex <- factor("m", c("m", "f")) # > sex [1] m Levels: m f sex 변수는 "m" 또는 "f" 값을갖는범주형변수로 "m" 을값으로 갖는다.

Factor Factor 변수는 nlevels() 로범주의수를구할수있고, levels() 로범주목록을알수있다. > nlevels(sex) [1] 2 > levels(sex) [1] "m" "f" Factor 이를응용하면각범주의값을다음과같이구할수있다. R 에서색인은 0 이아니라 1 부터시작한다. > levels(sex)[1] [1] "m" > levels(sex)[2] [1] "f" Factor Factor 변수에서 level 의값을직접적으로수정하고자한다면 levels() 에값을할당하면된다. 다음예는 "m" 을 "male", "f" 를 "female" 로바꾼다. > sex [1] m Levels: m f > levels(sex) <- c( male, female ) > sex [1] male Levels: male female Factor factor() 는기본적으로데이터에순서가없는명목형 nominal 변수를만든다. 만약범주형데이터지만 " 나쁨 ", " 조금나쁨 ", " 보통 ", " 조금 좋음 ", " 아주좋음 " 등과같이순서가있는값일경우는 순서형 ordinal 변수로만들기위해 ordered() 를사용하거나 factor() 를호출할때 ordered=true 를지정해준다. > ordered(c("a", "b", "c")) [1] a b c Levels: a < b < c > factor(c("a", "b", "c"), ordered=true) [1] a b c Levels: a < b < c

Factor 벡터는중첩될수없다. 따라서벡터안에벡터를정의하면이는 단일차원의벡터로변경된다. 중첩된구조가필요하다면뒤에서다룰리스트 List 를 사용해야한다. > c(1, 2, 3) [1] 1 2 3 > c(1, 2, 3, c(1, 2, 3)) [1] 1 2 3 1 2 3 정의 동일한종류의값의모임인배열 array c() 안에원하는인자들을나열하여정의한다. > x <- c(1, 2, 3, 4, 5) > x [1] 1 2 3 4 5 인자들은동일한스칼라타입이어야한다. 만약다른타입의데이터를섞어서벡터에저장하면이들 데이터는한가지타입으로자동형변환된다. > x <- c("1", 2, "3") > x [1] "1" "2" "3" 정의 숫자형데이터의경우 start:end 형태로 start 값부터 end 값까지의값을갖는벡터를만들수있다. seq(from, to, by) 또는 seq(from, to ) 형태역시가능하다. > x <- 1:10 >x [1] 1 2 3 4 5 6 7 8 9 10 > x <- 5:10 > x [1] 5 6 7 8 9 10 > seq(1, 10, 2) [1] 1 3 5 7 9 > seq(1, 5, 2) [1] 1 3 5 정의 특정값들이반복된벡터를손쉽게만드려면 rep() 를 사용한다. > rep (1:2, 5) [1] 1 2 1 2 1 2 1 2 1 2 > rep (1:2, each =5) [1] 1 1 1 1 1 2 2 2 2 2

정의 seq_along() 은인자로주어진데이터의길이만큼 1, 2, 3,, N 으로구성된벡터를반환한다. seq_len() 은 N 개의값이인자로주어지면 1, 2, 3,, N 으로구성된벡터를반환한다. > seq_along(c("a", "b", "c")) [1] 1 2 3 > seq_len(3) [1] 1 2 3 정의 names() 에원하는이름을벡터로넘겨서벡터의각셀에 이름을붙일수있다. > x <- c(1, 3, 4) > names(x) <- c("kim", "seo", "park") >x kim seo park 1 3 4 데이터접근 대괄호 [ ] 안에인덱스를적어원소에접근한다. 인덱스는 1 로시작한다. > x <- c("a", "b", "c") > x[1] [1] "a" > x[3] [1] "c" 데이터접근 인덱스를음수로지정하여배제한다. > x <- c("a", "b", "c") > x[-1] [1] "b" "c" > x[-2] [1] "a" "c"

데이터접근 벡터의여러위치에저장된값을가져오려면인덱스를벡터 형식을사용한다. 인덱스는 1 로시작한다. > x <- c("a", "b", "c") > x[c(1, 2)] [1] "a" "b" > x[c(1, 3)] [1] "a" "c" 데이터접근 인덱스의형식을 start:end로지정하여 start 부터 end까지의원소에접근한다. > x <- c("a", "b", "c") > x[1:2] [1] "a" "b" > x[1:3] [1] "a" "b" "c" 데이터접근 셀에이름을붙였다면이름을사용하여원소에접근할수있다. > x <- c(1, 3, 4) > names(x) <- c("kim", "seo", "park") > x kim seo park 1 3 4 > x["seo"] seo 3 > x[c("seo", "park")] seo park 3 4 데이터접근 벡터에부여된이름만보려면 names() 를사용한다. > names(x)[2] [1] "seo" 벡터의길이는 length() 를사용하여얻는다. > x <- c("a", "b", "c") > length(x) [1] 3

연산 %in% 연산자는어떤값이벡터에포함되어있는지를알려준다. > "a" %in% c("a", "b", "c") [1] TRUE > "d" %in% c("a", "b", "c") [1] FALSE 연산 벡터를집합set으로취급해집합간합집합, 교집합, 차집합을계산할수있다. > setdiff(c("a", "b", "c"), c("a", "d")) [1] "b" "c" > union(c("a", "b", "c"), c("a", "d")) [1] "a" "b" "c" "d" > intersect(c("a", "b", "c"), c("a", "d")) [1] "a" 연산 집합간비교는 setequal() 을사용한다. > setequal(c("a", "b", "c"), c("a", "d")) [1] FALSE > setequal(c("a", "b", "c"), c("a", "b", "c", "c")) [1] TRUE 리스트 list (key, value) 형태의데이터를담는연관배열 associative array 이다. list((key, value) 형태로데이터를나열하여정의한다. > x <- list(name="foo", height=70) > x $name [1] "foo" $height [1] 70

리스트 list 정의 이때각값이반드시스칼라일필요는없다. 다음처럼벡터를저장할수도있다. > x <- list(name="foo", height=c(1, 3, 5)) > x $name [1] "foo" $height [1] 1 3 5 리스트 list 정의 리스트에는다양한값들을혼합해서저장할수있다. 따라서리스트안에리스트를중첩하는것이가능하다. > list(a=list(val=c(1, 2, 3)), b=list(val=c(1, 2, 3, 4))) $a $a$val [1] 1 2 3 $b $b$val [1] 1 2 3 4 리스트 list 데이터접근 list$key 형식으로원소에접근한다. 또는 list[[index]] 형식으로원소의에접근한다. > x <- list(name="foo", height=c(1, 3, 5)) > x$name [1] "foo" > x$height [1] 1 3 5 > x[[1]] [1] "foo" > x[[2]] [1] 1 3 5 리스트 list 데이터접근 list[index] 형식으로원소에접근하면 (key, value) 를담고있는리스트를반환한다. > x[1] $name [1] "foo" > x[2] $height [1] 1 3 5

행렬 matrix 정의 차원 dimension 속성을갖는벡터 matrix() 함수로행렬을만든다. 차원속성은길이가 2 인정수벡터 (nrow 와 ncol) > m<-matrix(nrow=2, ncol=3) > m [,1] [,2] [,3] [1,] NA NA NA [2,] NA NA NA im(m) [1] 2 3 행렬 matrix matrix() 함수의첫인수로행렬원소값을지정한다. > m<-matrix(1:6, nrow=2, ncol=3) > m [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 행렬 matrix dim 속성에차원정보 ( 벡터형식 ) 를추가하여행렬로만들수있다. > m <- 1:10 > m [1] 1 2 3 4 5 6 7 8 9 10 im(m)<-c(2,5) > m [,1] [,2] [,3] [,4] [,5] [1,] 1 3 5 7 9 [2,] 2 4 6 8 10 행렬 matrix 열단위로벡터를지정하여 (cbind() 함수 ) 행렬을만들수있다. > x<-1:3 > y<-10:12 > cbind(x,y) x y [1,] 1 10 [2,] 2 11 [3,] 3 12

행렬 matrix 행단위로벡터를지정하여 (rbind() 함수 ) 행렬을만들수있다. > x<-1:3 > y<-10:12 > rbind(x,y) [,1] [,2] [,3] x 1 2 3 y 10 11 12 데이터프레임은 R에서가장중요한자료형이다. 데이터프레임은행렬과마찬가지의모습을하고있지만 행렬과달리다양한변수, 관측치observations, 범주등을표현하기위해특화되어있다. row.names 속성을갖는다. read.table() 또는 read.csv() 함수를사용하여만든다. data.matrix() 함수를사용하여행렬로부터만든다. 속성을갖는다. 정의 data.frame() 함수를사용하여정의한다. <-data.frame(c(1,2),c("x","y"),c("m","f")) c.1..2. c..x...y.. c..m...f.. 1 1 x M 2 2 y F rownames() 함수와 rcolnames() 함수를사용하여데이터 프레임의행과열의이름을지정한다. > colnames(d) <- c("x","y","z") > rownames(d) <- c("n1","n2") x y z n1 1 x M n2 2 y F

정의 행렬로부터데이터프레임을만들수있다. > m [,1] [,2] [,3] [,4] [,5] [1,] 1 3 5 7 9 [2,] 2 4 6 8 10 > md <- data.frame(m) > md X1 X2 X3 X4 X5 1 1 3 5 7 9 2 2 4 6 8 10 정의 data.frame() 함수를사용하여정의한다. 데이터프레임을만들때열의이름을지정하는것이일반적이다. <-data.frame(x=c(1,2),y=c("x","y"),z=c("m","f")) x y z 1 1 x M 2 2 y F str() 함수를사용하여데이터프레임의구조를볼수있다. > str(d) data.frame : 2 obs. of 3 variables: $ x: num 1 2 $ y: Factor w/ 2 levels "x","y": 1 2 $ z: Factor w/ 2 levels "F","M": 2 1 원소선택 $ 기호와열의이름을사용하여데이터프레임의열을선택할수있다. $x [1] 1 2 $x <-10:11 $y <- c("a", "b") x y z 1 10 a M 2 11 b F

원소선택 $ 기호와열의이름을사용하여데이터프레임의열을선택할수있다. [,c("x","w")] x w n1 1 100 n2 2 200 원소선택 위치인덱스를벡터로사용하여데이터프레임의행또는열을선택할수있다. x y z w n1 1 x M 100 n2 2 y F 200 [1,] x y z w n1 1 x M 100 [,1] [1] 1 2 원소선택 위치인덱스를벡터로사용하여데이터프레임의행또는열을선택할수있다. x y z w n1 1 x M 100 n2 2 y F 200 [,c(2,3)] y z n1 x M n2 y F 원소선택 - 기호를사용하여제외할행또는열의인덱스를지정할수있다. x y z w n1 1 x M 100 n2 2 y F 200 [-1,c(-2,-3)] x w n2 2 200

$ 기호를사용하여새로운열을추가할수있다. $w <- c(100,200) x y z w 1 10 a M 100 2 11 b F 200 data.frame() 함수를사용하여새로운열을추가할수있다. <- data.frame(d, w=c(100,200)) 데이터프레임의행인덱스를사용하여행을추가할수있다. > md X1 X2 X3 X4 X5 1 1 3 5 7 9 2 2 4 6 8 10 > md[3,] X1 X2 X3 X4 X5 NA NA NA NA NA NA > md[3,]=c(11,12,13,14,15) > md X1 X2 X3 X4 X5 1 1 3 5 7 9 2 2 4 6 8 10 3 11 12 13 14 15