조건문, 반복문

2019. 4. 18. 22:08R/Basic

조건문

 

if - else

x <- 10
if(x > 1){
  print("x > 1")
}else{
  print("x < 1")
}

1] "x > 1"

ifelse

x <- 10
ifelse(x > 1, "X > 1", "X < 1")

[1] "X > 1"

 

반복문

for

 

x <- c(1:5)
for( i in x){
  print(i)
}

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5

 

 

x <- c(1:10)
for(i in x){
  if(i >= 5){
    print("x >= 5")
  } else {
    print("x < 5")
  }
}

[1] "x < 5"
[1] "x < 5"
[1] "x < 5"
[1] "x < 5"
[1] "x >= 5"
[1] "x >= 5"
[1] "x >= 5"
[1] "x >= 5"
[1] "x >= 5"
[1] "x >= 5"

 

x <- c("aa","bb","cc","dd")
for(i in 1:4){
  print(x[i])
}

[1] "aa"
[1] "bb"
[1] "cc"
[1] "dd"

 

 

x <- c("aa","bb","cc","dd")
for(i in 1:length(x)){
  print(x[i])
}

[1] "aa"
[1] "bb"
[1] "cc"
[1] "dd"

 

 

x <- c("aa","bb","cc","dd")
for(i in seq(x)){
  print(x[i])
}

[1] "aa"
[1] "bb"
[1] "cc"
[1] "dd"
seq(x) : x의 length만큼 생성 (1:4) seq(x) = 1:x

 

for로 i x j 행렬 생성

 

m <- matrix(1:10, 2)

> m
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    3    5    7    9
[2,]    2    4    6    8   10

for(i in seq(nrow(m))){
  for(j in seq(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

 

set.seed(1004)

mat1 <- matrix(sample(1:12), nrow = 3,ncol = 1)
mat2 <- matrix(sample(1:12), nrow = 3,ncol = 1)
mat3 <- matrix(sample(1:12), nrow = 3,ncol = 1)
mat4 <- matrix(sample(1:12), nrow = 3,ncol = 1)
source <- data.frame(mat1,mat2,mat3,mat4)

mat <- NULL
mat <- matrix(nrow = 3, ncol = 4) %>% as.data.frame()

for(j in 1:3){
  for(i in 1:4){
    mat[j,i] <- source[j,i]
  }
}

> source
  mat1 mat2 mat3 mat4
1    4    1    7    9
2    3    2   11    4
3    8    8    5    3
> mat
  V1 V2 V3 V4
1  4  1  7  9
2  3  2 11  4
3  8  8  5  3

While 구문

 

i <- 1
while(i < 10){
  print(i)
  i <-  i + 5
}

[1] 1
[1] 6

 

함수 정의

 

a <- c("yahoo","naver","google")
vector.print <- function(x){
  for(i in seq(length(a))){
    print(x[i])
  }
}

> vector.print(a)
[1] "yahoo"
[1] "naver"
[1] "google"

 

APPLY 함수

  • lapply : list apply 
  • sapply : simplication apply
plus <- function(x,y){x+y}
> sapply(1:10, plus, 3)
 [1]  4  5  6  7  8  9 10 11 12 13
> sapply(1:10, '+', 3)
 [1]  4  5  6  7  8  9 10 11 12 13

'R > Basic' 카테고리의 다른 글

폴더에서 파일 리스트 가져오기  (0) 2019.04.27
정규 표현식  (0) 2019.04.22
행렬 생성, 호출  (0) 2019.04.20
ggplot2 기초  (0) 2019.04.17
R 설치  (0) 2019.04.17