728x90

1. 데이터객체

R에는 5가지 데이터객체가 있습니다.

(1) 벡터 (2) 행렬 (3) 배열 (4) 데이터프레임 (5) 리스트 입니다.

● 벡터(Vector)

벡터는 1차원적인 구조를 가집니다.

예) x <- c(1,2,3,4,5)

벡터는 그냥 숫자나 문자들의 묶음이라고만 생각하면 됩니다.

이 벡터를 구성하고 있는 숫자나 문자들을 요소(element)라고 합니다.

숫자값 하나인 경우(스칼라 라고 부름)는 원소가 하나인 벡터입니다.

 

● 행렬(Matrix)

행렬은 행과 열로 구성된 사각형태의 데이터로 2차원적인 구조를 가집니다.

행렬은 행과 열의 개수, 행과 열의 이름을 속성으로 가지고 있습니다.

여러 개의 벡터를 행으로 또는 열로 구성하면 행렬이 됩니다.

 1 2 3

 4 5 6

 

● 배열(Arrays)

배열은 3차원 이상의 구조를 가지는데, 동일한 타입의 원소들로 구성된 여러 차원 형태인 데이터 객체입니다.

행렬(Matrix)객체는 2차원의 배열에 해당됩니다.

 

● 데이터프레임(Data Frame)

데이터프레임은 숫자형, 문자형 등으로 혼합되어 구성되어 있습니다.

데이터 프레임은 변수와 행으로 이루어진 객체로 엑셀, SAS SPSS 등에서 많이 사용되는 형태입니다.

    gender wei   hei

      F       65  171

      M      67  173

 

열로는 변수명을 가지고, 행으로는 관찰치의 개념을 가지고 있는 것입니다.

데이터프레임은 행렬(matrix)과 비슷한 형태이지만,

행렬은 구성하는 요소들이 동일한 타입이지만,

데이터프레임은 열마다 서로 다른 자료 형태를 가질 수 있습니다.

 

● 리스트(List)

리스트객체는 서로 다른 타입의 데이터 객체들로 구성되어 있습니다.

각 요소가 벡터일 수도 있고, 행렬이나 배열 그리고 데이터프레임일 수도 있습니다.

 

2. 데이터 객체를 이루는 원소의 데이터형

 데이터 객체를 구성하는 원소에는 수치형, 논리형, 복소수형, 문자형이 있습니다.

앞에서 설명한 것은 데이터 객체이고,

여기서는 그 데이터 객체를 구성하는 원소의 형태에 대해서 설명하고 있습니다.

 

2.1 데이터형의 종류

 

(1) 숫자형

정수(integer), 실수(double), 지수가 있으며, 실수형이 기본입니다.

100, 2.15, 2.15e05 등이 있는데 숫자 100은 실수형이고

숫자뒤에 L을 붙인 100L 은 정수형입니다.

 

(2) 논리형

(true), 거짓(false)

 

(3) 복소수형

복소수는 제곱을 하면 음수가 되는 숫자를 말합니다.

제곱하여 1이 되는 수를 i 로 표시합니다.

그리하여 2i 의 제곱은 4가 됩니다.

3+2i

 

(4) 문자열

문자로 구성된 변수입니다.

 

> a <- c(1.0,2.0,3.0)     # a는 실수로 구성된 벡터
> b <- c(1L,2L,3L)       # b 는 정수로 구성된 벡터
> c <- c(1+2i,2,3)       # c는 복소수롤 구성된 벡터
> d <- c("1","2","3")    # d는 문자로 구성된 벡터
> e <- c(TRUE,FALSE)  # e는 논리로 구성된 벡터
  예.  3 > 4 # 3 4보다 작으므로 FALSE
> f <- c(1+2i,2,'3')      # f 는 복소수, 숫자, 문자로 되어 있지만, 문자로 구성된 벡터

 

2.2 데이터형의 종류 확인하기 – typeof()

 

데이터 객체를 확인하는 방법으로 typeof() 함수를 사용합니다.

 

> a <- c(1,2.0,3)

> typeof(a)    # [1] "double"

 

> b <- c(1L,2L,3L)  

> typeof(b)     #  [1] "integer"

 

> c <- c(1+2i,2,3)

> typeof(c)   #  [1] "complex"


> d <- c("1","2","3")

> typeof(d)   #  [1] "character“

 

> e <- c(TRUE,FALSE)

> typeof(e)  #  [1] "logical"

 

> 3 > 4    #   [1] FALSE

 

2.3 형 변환 –  as.logical, as.character

 

"as.데이터타입" 함수를 이용하여 데이터의 종류를 형변환할 수 있습니다.

 

# 숫자형을 문자형으로 변환 as.character 함수 이용

# is.character 함수를 이용, 문자형으로 변환되었는지 확인

> a <- c(1.0,2.0,3.0);a      # [1] 1 2 3

> ca <- as.character(a)   # 숫자형을 문자형으로 변환

> ca                           # [1] "1" "2" "3"

 

# 문자형을 숫자형으로 변환 - as.numeric() 함수 이용

> d <- c(1,"2","3")   #  [1] "1" "2" "3"

> nd <- as.numeric(d)  

>nd # [1] 1 2 3

> is.numeric(nd) # [1] TRUE

 

# 논리형으로 변환 - as.logical() 함수 이용 

> e <- c(TRUE,FALSE,TRUE)       # [1] TRUE FALSE TRUE

> ne <- as.numeric(e)             # [1] 1 0 1

> sum(e)                             #  2

 

a <- c(0,1,2,3)     # [1] 0 1 2 3

la <- as.logical(a)

la # [1] FALSE TRUE TRUE TRUE

sum(la) # [1] 3

 

# 실수형을 정수형으로 변환 - as.integer() 함수 이용

 a <- c(1.0,2.0,3.0);a

ia <- as.integer(a);ia

typeof(a) # [1] "integer"

typeof(ia) # [1] "double"

is.numeric(ia) # [1] TRUE

 

 강제 형변환

R에서는 강제 형변환이란 개념이 있습니다.

각 요소가 논리형, 정수형, 실수형, 복소수형, 문자형이 혼합되어 있을 때에는 상위 형태로

자동적으로 변환되는 것을 말합니다.

 

> f <- c(1+2i,2,'3')

> typeof(f)

[1] "character"

 

logical > integer > double > complex > character

+ Recent posts