DATOR


분석 준비 단계 : 분석 프로그램입 문 Matrix Object


(1)행수를 지정하는 방식으로 Matrix 생성: nrow옵션

#“col=2“2열로 matrix를 생성

#데이터가 채워지는 방향은 왼쪽에 맨위에서부터

> mX <- matrix(1:6,ncol=2)

 

> mX

[,1] [,2]

[1,] 1 4

[2,] 2 5

[3,] 3 6

 

 

#행을 2개로 matrix를 생성

#데이터가 채워지는 방향은 변함없이 왼쪽 맨위 상단에서 아래로 방향으로 채워나

> mX <- matrix(1:6, nrow=2)

> mX

[,1] [,2] [,3]

[1,] 1 3 5

[2,] 2 4 6

 

 

(2) 데이터 원소를 채워나가는 방향을 변경하기 위한 옵션,

byrow=T행을 기준으로 데이터 원소를 채운

-byrow=T 옵션은 데이터 원소을 횡으로 입력

 

# 32열로 만들고,

#값은 byrow=T를 지정하면 행단위로 데이터 원소를 채운

> mX <- matrix(1:6, 3, 2, byrow=T)

> mX

[,1] [,2]

[1,] 1 2

[2,] 3 4

[3,] 5 6

 

> data.class(mX)

[1] "matrix"

 

> mode(mX)

[1] "numeric“

 

> typeof(mX)

[1] "integer"

 

# dim(데이터가 들어있는 변수명)은 행의 개수와 열의 개수를 출력

# 32

>dim(mX)

[1] 3 2

 

 

 

(3) dim (dimension) 함수를 이용한 Matrix 생성 방법

# dim ()함수를 이용하여 행과 열의 수를 지정 할 수 

> mX2 <- 1:6

> dim(mX2) <- c(3,2)

> mX2

[,1] [,2]

[1,] 1 4

[2,] 2 5

[3,] 3 6

 

#matrix()함수와 동일한 type class로 생성

> data.class(mX2)

[1] "matrix"

 

> typeof(mX2)

[1] "integer"

 

> mode(mX2)

[1] "numeric"

 

 

(4)Character 로 인식된 숫자를 numeric으로 변환할 때 주의 사항

#tex1에는 숫자만 있는 것으로 보이지만 "5,"가 있.

데이터가 많아지는 경우에는 입력의 형식이 약간다른 값들은 쉽게 발견하기 어렵고, 그렇기에 변환(문자를 숫자등으로)하는 과정에서 데이터의 손실

이러한 경우를 피하기 위해서는 텍스트에 대한 함수등을 더 학습하여서 손실을 줄일 수 있게 변환을 하여서 분석을 하여야

#matrix 로 변경하자 "5," 부분이 문자에서 숫자로 변경되는 과정에서 손실

> tex1<-c("1","2","3","4","5,","6","7","8","9")

> is.vector(tex1)

[1] TRUE

> (mXtex <- matrix(tex1))

[,1]

[1,] "1"

[2,] "2"

[3,] "3"

[4,] "4"

[5,] "5,"

[6,] "6"

[7,] "7"

[8,] "8"

[9,] "9"

 

#숫자로 변경하고자하는 경우 as.integer()를 사용하여야

# colClass 옵션 사용 unused Error

> mXtexnume <- matrix(tex1,colClass="numeric")

Error in matrix(tex1, colClass = "numeric") :

unused argument (colClass = "numeric")

 

> mXtexnume <- matrix(tex1,colClass=c("numeric"))

Error in matrix(tex1, colClass = c("numeric")) :

unused argument (colClass = c("numeric"))

 

 

#“5,” NA 로 변경되어 데이터가 손실

> mXtexnume <- matrix(as.integer(tex1))

Warning message:

In matrix(as.integer(tex1)) : NAs introduced by coercion

 

> mXtexnume

[,1]

[1,] 1

[2,] 2

[3,] 3

[4,] 4

[5,] NA

[6,] 6

[7,] 7

[8,] 8

[9,] 9

 

> data.class(mXtexnume)

[1] "matrix"


*Reference

 교재서 발췌RFundamental_cover.jpg

Tag

Leave Comments


Profile

profileanalysis에 관련된 question에 대한 Answer