[플레이데이터 빅데이터 부트캠프]R 프로그래밍 - 조건문 반복문 함수

조건문

if(data){
	data가 참일 때 실행할 문장
} else{
	data가 거짓일 떄 실행할 문장
}

if문은 조건 data가 참, 거짓인 경우에 따라 {}블록 실행, 필요한 경우 else블록 지정한다.

ifelse() 함수는 TRUE, FALSE 데이터 한번에 처리할 때 사용한다.

ifelse{
	test, #참, 거짓을 저장한 객체
    yes, #test가 참일 때 선택할 값
    no #test가 거짓일 때 선택할 값
)

if문 예시

if(TRUE){
	print("참")
    print("HELLO")
    } else{
    	print("거짓")
        print("WORLD")
}
[1] "참"
[1] "HELLO"

ifelse()문 예시

X<- C(6, 7, 7, 8, 10)
ifelse(x %% 2 == 1, "홀수", "짝수")
[1] "짝수" "홀수" "짝수" "홀수"  "짝수"

while문에서 next 사용

next : 현재 수행 중인 반복문 블록의 수행을 중단하고 다음 반복 시작

i <- 0
while (i <= 15){
  i <- i + 1
  if (i %% 3 != 0){
    next
  }
  print(i)
}

while문에서 repeat 사용

> a <- 11
> repeat{
+   print(a)
+   if(a>=20){
+       break
+   }
+   a<-a+1
+ }
[1] 11
[1] 12
[1] 13
[1] 14
[1] 15
[1] 16
[1] 17
[1] 18
[1] 19
[1] 20

NA 처리

데이터에 NA가 포함된 경우, NA 처리 함수 필요하다.

sum(c(1, 2, 3, NA), na.rm=T)
[1] 6

전역변수 할당

<<- 전역변수에 할당

지역변수와 전역변수를 어떻게 사용하느냐에 따라 함수의 리턴하는 값이 달라질 수 있다.

전역변수를 사용하였을 때

> y <- 1
> f <- function() {
+   x <- 3
+   a <- function() {
+     x<<-3
+     y<<-3
+     print(x)
+     print(y)
+   }
+   a()
+   print(x)
+   print(y)
+ }
> f()
[1] 3
[1] 3
[1] 3
[1] 3

전역변수를 사용하지 않았을 때

> y <- 1
> f <- function() {
+   x <- 2
+   a <- function() {
+     x<-3
+     y<-3
+     print(x)
+     print(y)
+   }
+   a()
+   print(x)
+   print(y)
+ }
> f()
[1] 3
[1] 3
[1] 2
[1] 1