×
Crocus
공부한 내용을 정리하는 블로그로 시작한
Crocus는 2014년 1월 14일 부터 시작하여
현재 월 6만명, 총 1,499,888명의 방문자 수를 기록하고 있습니다.
Donation
이제 많은 사용자들이 이용하는 만큼
더 다양한 서비스 개발/제공을 위해 후원금을 모금하고자 합니다.
후원을 해주시는 분들은 Donators 명단에 성명, 후원금을 기입해드리며
Crocus 블로그가 아닌 다른 곳에 정리해둔 저만의 내용을 공유해 드리고자 합니다.
Account
예금주 : 고관우
신한은행 : 110-334-866541
카카오뱅크 : 3333-01-7888060

👉 후원 페이지 바로가기 Donators
익명 : 5000원(Crocus응원합니다.)
busyhuman: 5000원(유용한 지식 감사합니다.)
익명 : 5000원(알고리즘 학습러)

1. 벡터 형성 -> 매트릭스(행렬) 형성 -> bind -> 부분 행렬 출력을 해보자.


> y <- 1:12

> y <- matrix(y, nrow = 3)

> y

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

[1,]    1    4    7   10

[2,]    2    5    8   11

[3,]    3    6    9   12


> x <- 21:32

> x <- matrix(y, nrow = 3)

> y <- rbind(y,x)

> y

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

[1,]    1    4    7   10

[2,]    2    5    8   11

[3,]    3    6    9   12

[4,]    1    4    7   10

[5,]    2    5    8   11

[6,]    3    6    9   12


> y <- 1:12

> y <- matrix(y, nrow = 3)

> y

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

[1,]    1    4    7   10

[2,]    2    5    8   11

[3,]    3    6    9   12


> x <- 21:32

> x <- matrix(x, nrow = 3)

> x

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

[1,]   21   24   27   30

[2,]   22   25   28   31

[3,]   23   26   29   32


> y <- rbind(y,x)

> y

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

[1,]    1    4    7   10

[2,]    2    5    8   11

[3,]    3    6    9   12

[4,]   21   24   27   30

[5,]   22   25   28   31

[6,]   23   26   29   32


> edit(y)

     age height address tmp

[1,]   1      4       7  10

[2,]   2      5       8  11

[3,]   3      6       9  12

[4,]  21     24      27  30

[5,]  22     25      28  31

[6,]  23     26      29  32


> y[2:4,]

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

[1,]    2    5    8   11

[2,]    3    6    9   12

[3,]   21   24   27   30


> y[,3:4]

     [,1] [,2]

[1,]    7   10

[2,]    8   11

[3,]    9   12

[4,]   27   30

[5,]   28   31

[6,]   29   32




2. for문 이용하여 2차원 행렬 출력



> y <- matrix(1:12, 3)

> y

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

[1,]    1    4    7   10

[2,]    2    5    8   11

[3,]    3    6    9   12


> y <- matrix(1:12, nrow = 3)

> y

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

[1,]    1    4    7   10

[2,]    2    5    8   11

[3,]    3    6    9   12


> for(i in 1:nrow(m)){

+     for(j in 1:ncol(m)){

+         print(m[i,j])

+     }

+ }

[1] 1

[1] 3

[1] 5

[1] 7

[1] 9

[1] 2

[1] 4

[1] 6

[1] 8

[1] 10



3. sapply 직접 구현해보기


> s_apply <- function(x){

+     y <- c()

+     for(i in x){

+         y <- c(y, i*i)

+     }

+     return (y)

+ }


> s_apply(1:3)

[1] 1 4 9



4. lapply 직접 구현해보기


> l_apply <- function(x){

+     y <- c()

+     for(i in x){

+         y <- c(y, i*i)

+     }

+     return (as.list(y))

+ }


> l_apply(1:3)

[[1]]

[1] 1


[[2]]

[1] 4


[[3]]

[1] 9




5. 벡터를 원하는 크기만큼 0으로 초기화 하는 방법

double를 또는 rep를 쓰면 초기화를 할 수 있다.

> vc <- double(10)
> vc
 [1] 0 0 0 0 0 0 0 0 0 0

> vc <- double(5)
> vc
[1] 0 0 0 0 0

> vc <- rep(0, 3)
> vc
[1] 0 0 0

> vc <- rep(0, 20)
> vc
 [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0