53
표현식과 데이터 객체 Chapter 02 조동헌 Davi Innovation

R - chapter 2

Embed Size (px)

Citation preview

Page 1: R - chapter 2

표현식과 데이터 객체Chapter 02

조동헌 Davi Innovation

Page 2: R - chapter 2

챕터 2 목차• 표현식• 데이터형• 벡터• 행렬• 배열• 리스트• 범주형 자료

• 데이터 프레임

• 시계열

Page 3: R - chapter 2

표현식

• 연산자, 상수, 변수 등을 연속 입력 불가

• 공백, 탭은 가독성을 높이기 위해 사용

• **의 입력은 ^(거듭제곱)과 같다

Page 4: R - chapter 2

표현식

•circle����������� ������������������  <-����������� ������������������  pi*r^2

•circle����������� ������������������  <-����������� ������������������  pi*r**2

•(34+65)*23

•5**2

•total<-kor����������� ������������������  neg����������� ������������������  mat����������� ������������������  +

•age=����������� ������������������  ++age

•str<-<-“R����������� ������������������  is����������� ������������������  free”

<바른 표현식> <틀린 표현식>

Page 5: R - chapter 2

표현식 - 식별자• 식별자는 객체 이름, 함수 이름 등을 말함

• 식별자 규칙• 첫째 문자는 영문으로 시작(ex> a10 (o), 10a(x) )

• 대소문자 구별가능(ex> a10, A10 다른 식별자)

• . (점), _(언더바) 포함 가능, 외 특수문자 입력 불가(!,%,$)

• 예약어 사용 불가(ex> pi, if, else, next, abs, sin 등)

• 간결하고 이해하기 쉬운 식별자 사용

Page 6: R - chapter 2

데이터형• 데이터형 종류• 수치형(numeric) : 정수, 실수, 지수 등 (ex>36, 3.14, 625e-12)

• 논리형(logical) : 논리적 참과 거짓 표현 (T , TRUE, 1 // F, FALSE, 0)

• 복소수형(complex) : 복소수. a+bi의 형식 (ex> 34+23i)

• 문자형(character) : 문자, 문자열. ‘ ’, “ ”로 표현 (ex>‘Hello’, “World”)

• raw형 : 가공되지 않은 원시 바이트(byte) 데이터

Page 7: R - chapter 2

데이터형

Page 8: R - chapter 2

데이터형

• mode( ) 명령어

• storage.mode( ) 명령어

- 괄호 안의 데이터형 출력

- 괄호 안의 데이터 타입 출력

//(주의!)FALSE와 False는 다른 것!

//1:5는 (정수)1에서 (정수)5까지 정수를 가르킴

Page 9: R - chapter 2

데이터형storage.mode( ) 함수• storage.mode( ) 함수는

R에서 메모리나 디스크 등에 실제로 저장되는 데이터 타입을 알려줌

• 수치형(numeric)은 정수(intger)과 실수(double)로 나뉨

• typeof( ) 함수 같은 기능 - 조금더 세분화하여 판단

//으잉? 정수 1인데 double(실수)형?

<잠깐! mode() 함수, storage.mode() 함수는 typeof() 함수를 호출하여 구현한 함수이다!>

Page 10: R - chapter 2

데이터형raw 형

• raw형은 가공되지 않은 윈시 바이트(byte) 데이터를 의미하며, 16진수로 표현된다

• raw형은 자주 사용되지는 않지만, 벡터나 행렬 등을 만들 수 있는 기본형 중의 하나이다

• raw형의 표현의 범위는 십진수로 0부터 255까지의 256개로 각각 256개의 ASCII 코드로 표현할 수 있다

Page 11: R - chapter 2

데이터형raw 형

<as.raw( ) 함수는 주어진 숫자를 raw형(16진수)로 변환>

//범위 0~255를 초과시 에러

<rawToChar( ) 함수는 raw형을 char형으로 변환><charToRaw( ) 함수는 char형을 raw형으로 변환>

<as.numeric( ) 함수는 raw형을 numeric형으로 변환>

//(numeric형)65를 raw형으로 변환 후 char형으로 변환

//(char형)A를 raw형으로 변환

//(char형)A를 raw형으로 변환 후 numeric형으로 변환

참고> ASCII 코드에 의하면65==A;

Page 12: R - chapter 2

데이터형 - 형 변환//x 식별자 선언 전

//x 식별자 선언

//x 식별자 character형에서 numeric형으로 변환

//X 식별자는 없음(대소문자 구분)

//x 식별자 charcter형에서 numeric형으로 변환 확인

//x 식별자에 pi(3.1427...)값 대입

//double.x 식별자 선언 하며 pi값 대입

//double.x 식별자 double형에서 integer형으로 변환(numeric형에는 double형과 integer형 종류 있음)

//raw.x 식별자 선언하며 65를 raw형으로 변환, 대입

mode(식별자)<- “변환할 형”

//raw.x 식별자 raw형에서 character형으로 변환

//raw.x 식별자 character형에서 numeric형으로 변환

storage.mode(식별자)<- “변환할 형”

Page 13: R - chapter 2

데이터형 - as.*( ) 함수//char.x 식별자 선언. character형 “123”으로 초기화

//char.x 식별자 character형에서 numeric형으로 변환

식별자<-as.변환할 형(식별자)

Page 14: R - chapter 2

벡터(vector)

벡터(vector)는 하나 이상의 수치값, 논리값, 복소수값, 문자값, raw 등으로 구성된 데이터 구조

Page 15: R - chapter 2

벡터(vector)

typeof mode storage.mode examplelogical logical logical TRUE, T, F, 3<4

integer numeric integer 1:4

double numeric double 1.01, 1.1, 2, pi

complex complex complex 1+4i, 2i

character character character “hi”, ‘hi’

raw raw raw as.raw(65)

<벡터를 구성하는 기본형들>

Page 16: R - chapter 2

벡터

벡터를 정의하는 속성 = 벡터를 구성하는 기본형(mode) + 원소의 개수를 나타내는 길이(length)

1, 3, 5, 7, 11, 13 - 길이가 6(length)인 수치형(numeric) 벡터

“spring”, “summer”, “fall”, “winter” - 길이가 4(length)인 문자형(character) 벡터

Page 17: R - chapter 2

벡터character > complex > numeric(double>integer) > logical > raw

<강제 형 변환 우선 순위>

//complex<-numeric+complex

//character<-character+numeric

//numeric<-numeric+logical

//character<-character+numeric

//character<-character+complex

//numeric<-numeric+raw

//logical<-logical+raw

//character<-character+raw

//복소수 i. 1*i는 i로 표현하지 말고 1i로 표현

//복소수 i. 1*i는 i로 표현하지 말고 1i로 표현

//double<-double+integer

Page 18: R - chapter 2

벡터sequence 연산자( : )

//문자형의 경우 에러 발생

//연산 우선순위로 1:3 이후에 +3i 계산

//(3+3i) 연산 시 3i가 0이 됨

//우선순위로 2i:(3+3i) 계산 후 1+ 계산

# 연산 우선 순위 ( : > 사칙연산 )- 괄호 적절히 사용하는 것이 중요

//논리형은 FASLE는 0, TRUE는 1로 변환 후 계산

//1:5 계산 후 +4 계산

//1:5 계산 후 *4 계산

//-1:5 계산 후 /4 계산

//-2:5 계산 후 *4 계산 후 -1 계산

//5i:7 계산 후 3+, +6i 계산

Page 19: R - chapter 2

벡터seq(along=(시작, 끝,) length=간격) 함수

>시작, 끝, 간격의 기본값은 1

// 1:length(x)

Page 20: R - chapter 2

벡터rep(along=원소들 값, each=각각 원소 반복할 수,

len=반복하여 생성할 최종 벡터 길이, times=반복할 전체 횟수) 함수>along의 기본값은 NULL ,each, times의 기본값은 1

Page 21: R - chapter 2

벡터scan( ) 함수

scan( ) 함수는 키보드로부터 자료를 입력받거나외부 파일로부터 자료를 읽어들이는 함수

Page 22: R - chapter 2

행렬(matrices)

행렬(matrices)은 수학에서의 행렬과 구조가 동일하고 수치형 이외의 원하는 자료형을 가질 수 있다

Page 23: R - chapter 2

행렬의 속성

• length : 행렬 원소의 개수

• mode : 행렬 원소들의 자료형

• dim : 행과 열의 개수

• dimnames : 행과 열의 이름

Page 24: R - chapter 2

행렬matrix( ) 함수

//mat 식별자 생성 초기화(저장)

1:12 //원소 : 1~12(numeric형)ncol=4 // 행(가로) : 4

byrow=T //byrow는 행렬의 원소인 벡터를 행 방향 배치 or 열 방향 배치 설정 - T이면 행방향, F혹은 생략이면 열방향

LETTERS[1:12] //원소 : “A”~”L”(character형)nrow=4 // 열(세로) : 4

dimnames=list( c(“Row.1”, “Row.2”, “Row.3”, “Row.4”) , c(“Col.1”, “Col.2”, “Col.3”) ) //행 이름과 열 이름 리스트(list) 값으로 설정

Page 25: R - chapter 2

행렬matrix( ) 함수

attributes( ) 함수행렬의 차원인 dim과 행과 열의 이름인 dimnames를 반환

//dim 가로행 수, 세로행 수 출력

//dimnames 행, 열의 이름 출력//열

//행

length( ) 함수 // 행렬의 원소 개수mode( ) 함수 // 데이터형 출력

matrix( ) 함수 // nrow, ncol 인수를 사용하지 않으면 열의 개수가 1(ncol=1)인 행렬을 생성

Page 26: R - chapter 2

행렬rbind( ) 함수

rbind( ) 함수를 사용하여 만들어진 행렬의 행의 개수는 rbind 함수에서 사용한 인수의 개수와 같고, 열의 개수는 인수에 사용한 벡터에서 길이가 가장 긴 벡터의 길이와 같다

Page 27: R - chapter 2

행렬cbind( ) 함수

cbind( ) 함수는 벡터를 열 방향으로 묶는 함수 // rbind( ) 함수는 행 방향- 열의 이름 지정 가능

Page 28: R - chapter 2

행렬dim( ) 함수

dim( ) 함수는 객체의 차원을 반환하는 함수dim( ) <- c( )를 이용해 행렬을 만들 수 있음

//mat 식별자 생성, 1:6 초기화

//벡터를 2행 3열 행렬로 변경

//행렬 차원을 없애 다시 벡터로 변경

Page 29: R - chapter 2

행렬array( ) 함수

array( ) 함수는 배열을 만드는 함수is.matrix( ) 함수는 전달받은 인자가 행렬인지를 판단하는 함수

Page 30: R - chapter 2

배열(arrays)

배열(arrays)은 동일한 형의 원소를n개의 차원으로 구성한 데이터 객체

Page 31: R - chapter 2

배열의 속성

• length : 배열 원소의 개수

• mode : 배열 원소들의 자료형

• dim : 배열의 차원

• dimnames : 배열 차원의 이름

Page 32: R - chapter 2

배열array( ) 함수

array( ) 함수- 2x3x4의 3차원 배열

- dimnames=list( )로 행렬의 이름을 정함

Page 33: R - chapter 2

리스트(lists)

리스트(lists)는 서로 다른 유형의 데이터로 구성된 데이터 객체- C언어의 구조체

Page 34: R - chapter 2

리스트의 속성

• length : 성분의 개수

• mode : 리스트의 자료형

• names : 각 성분들의 이름

Page 35: R - chapter 2

리스트

리스트의 형 : list리스트의 성분 개수 : 3리스트의 성분 이름 : NULL

Page 36: R - chapter 2

리스트

Page 37: R - chapter 2

범주형 자료(categorical data)

범주형 자료(categorical data)는 어떠한 성질을 나타내는 자료

ex)sex : “male”, “female”hand : “left”, “right”fruit : “apple”, “banana”, “kiwi”

Page 38: R - chapter 2

범주형 자료 - factor

• length : 원소들의 개수

• mode : factor의 자료 형. 항상 “numeric”의 값을 가짐

• names : factor의 각 원소 이름

• levels : 범주형 자료의 수준

<factor 자료형의 속성>

R에서 범주형 자료의 자료형을 factor로 명명

Page 39: R - chapter 2

범주형 자료 - factor

answer.fct원소 개수 : 3자료형 : numeric

자료의 수준(level) : “no”, “yes”

Page 40: R - chapter 2

범주형 자료 - factor

person.vec원소 개수 : 5자료형 : numeric

자료의 수준(level) : “Male”, “Female”각 원소의 이름 : “1th”, “2th”, “3th”, “4th”, “5th”

levels 인수에 있는 원소를 출력

> person.vec1th����������� ������������������  ����������� ������������������  ����������� ������������������  2th����������� ������������������  ����������� ������������������  ����������� ������������������  3th����������� ������������������  ����������� ������������������  ����������� ������������������  4th����������� ������������������  ����������� ������������������  ����������� ������������������  5th“M”“F”����������� ������������������  “M”����������� ������������������  “F”����������� ������������������  “M”

//각 원소 이름

각 원소에 label을 붙여줌labels=c(“Male”)일 시는 Male1, Male2

라벨 사용시, 원소보다 label수 많으면 error

Page 41: R - chapter 2

범주형 자료 - ordered factor

factor의 level에서 순서의 의미를 부여함

Page 42: R - chapter 2

데이터 프레임(data frames)

데이터 프레임(data frames)는 데이터베이스의 테이블과 유사

> 테이블의 열은 데이터베이스에서 지원하는 자료형으로 이루어지고, 각각의 열의 자료형은 달라도 됨. 이런 유사성으로 자료분석 과정에서 데이터베이스의 테이블 자료를 ODBC를 통해 R의 데이터 프레임으로 불러와서 분석

Page 43: R - chapter 2

데이터 프레임의 속성

• length : 변수들의 개수(열방향 데이터가 변수)

• mode : 항상 “list”의 값을 갖는다

• names : 변수들의 이름

• row.names : 행의 이름

• class : 항상 “data.frame”을 갖는다

Page 44: R - chapter 2

데이터 프레임

• 데이터 프레임을 만드는 방법

- data.frame 함수를 사용해서 만들기

- read.table로 외부 파일 읽어들이기 - 6장

Page 45: R - chapter 2

데이터 프레임- data.frame( )

<앗 실수!(naems)>

<row.names 인수 행 이름 지정>

Page 46: R - chapter 2

데이터 프레임- data.frame( )

<$ 연산자 - 데이터 프레임의 변수값을 액세스>

#주의! data.frame() 함수로 데이터 프레임을 만들 시,문자벡터(character형)은 범주형 자료(categorical data)로 자동 변환!!!

자동����������� ������������������  변환����������� ������������������  싫으면!����������� ������������������  stringsAsFactors=F

Page 47: R - chapter 2

시계열(time series)

시계열(time series)는 시간의 경과에 다른 데이터 분석을 위한 ts(time series) 클래스 객체

Page 48: R - chapter 2

시계열의 속성

• length : 원소들의 개수

• mode : 원소 값들의 종류

• tsp : 시작 시점, 종 시점, 시간의 간격

• dim : 다중 시계열에서의 행과 열의 수

• dimnames : 다중 시계열에서 행과 열의 이름

Page 49: R - chapter 2

시계열- ts( )

frequency=4 //분기별frequency=12 //월별frequency=1 //년도별

<start 인수 사용>

Page 50: R - chapter 2

시계열- ts( )

frequency=4 //분기별frequency=12 //월별frequency=1 //년도별

<end 인수 사용><print 사용 - calendar=T>

Page 51: R - chapter 2

시계열- tsp( )

tsp( ) 함수는 ts 객체의 start, end, frequency를 출력

Page 52: R - chapter 2

시계열- mts(multiple times series)

mts(multiple times series)는 시계열 자료에서 계열의 개수가 두개 이상인 것을 일컫는다

ncol은 행 원소 개수nrow는 열 원소 개수

Page 53: R - chapter 2

Chapter 2 - 표현식과 데이터객체 is END.

조동헌 copyright [email protected]