> #벡터
> x <- c(1,2,3)
> y <- c(4,5,6)
> z <- c(7,8,9)
> #방법1: cbind()함수로 열로 붙이기
> cbind(x,y,z)
x y z
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
> #방법2: rbind()함수로 행으로 붙이기
> rbind(x,y,z)
[,1] [,2] [,3]
x 1 2 3
y 4 5 6
z 7 8 9
> #방법3: matrix함수 사용하기
> c(x,y,z)
[1] 1 2 3 4 5 6 7 8 9
> matrix(c(x,y,z), nrow = 3)
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
> matrix(c(x,y,z), ncol = 3)
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
> matrix(c(x,y,z), nrow = 3)
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
> matrix(c(x,y,z), nrow = 3, byrow = T) #행 우선채움
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9
> matrix(c(x,y,z), byrow=T) #열 우선채움
[,1]
[1,] 1
[2,] 2
[3,] 3
[4,] 4
[5,] 5
[6,] 6
[7,] 7
[8,] 8
[9,] 9
> matrix(c(x,y,z), ncol = 3, byrow = T) #2번째 인수는 행, 열의 크기를 결정한다. 3번째 인수는 행 또는 열 우선을 지정한다.
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9
>
> matrix(c(x,y,z), ncol = 2, byrow=T)
[,1] [,2]
[1,] 1 2
[2,] 3 4
[3,] 5 6
[4,] 7 8
[5,] 9 1
> matrix(c(x,y,z), ncol = 1, byrow = T) #열벡터
[,1]
[1,] 1
[2,] 2
[3,] 3
[4,] 4
[5,] 5
[6,] 6
[7,] 7
[8,] 8
[9,] 9
> matrix(c(x,y,z), nrow = 1, byrow = T) #행벡터
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,] 1 2 3 4 5 6 7 8 9
>
> dim(c(x,y,z)) <- c(2,2)
이하에 에러dim(c(x, y, z)) <- c(2, 2) :
dims [product 4] do not match the length of object [9]
> dim(c(x,y,z)) <- c(3,3)
이하에 에러dim(c(x, y, z)) <- c(3, 3) :
함수 "c<-"를 검색해낼수가 없었습니다
> data <- c(x,y,z)
> dim(data) <- c(3,3)
> data
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
>
> x <- c(1,3,5,0)
> diag(x) #대각행렬
[,1] [,2] [,3] [,4]
[1,] 1 0 0 0
[2,] 0 3 0 0
[3,] 0 0 5 0
[4,] 0 0 0 0
> diag(1:5)
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 0 0 0
[2,] 0 2 0 0 0
[3,] 0 0 3 0 0
[4,] 0 0 0 4 0
[5,] 0 0 0 0 5
> diag(rep(1,3)) #단위행렬
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
>
> m <- matrix(1:9, nrow = 3, byrow = T)
> m
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9
> upper.tri(m)
[,1] [,2] [,3]
[1,] FALSE TRUE TRUE
[2,] FALSE FALSE TRUE
[3,] FALSE FALSE FALSE
> lower.tri(m)
[,1] [,2] [,3]
[1,] FALSE FALSE FALSE
[2,] TRUE FALSE FALSE
[3,] TRUE TRUE FALSE
> upper.tri(m) * m
[,1] [,2] [,3]
[1,] 0 2 3
[2,] 0 0 6
[3,] 0 0 0
> lower.tri(m) * m
[,1] [,2] [,3]
[1,] 0 0 0
[2,] 4 0 0
[3,] 7 8 0
> upper.tri(m, diag = T) * m #상삼각행렬, 행렬의 곱이 아닌 같은 위치의 원소끼리의 곱이다.
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 0 5 6
[3,] 0 0 9
> lower.tri(m, diag = T) * m #하삼각행렬
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 4 5 0
[3,] 7 8 9
>