ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 연습문제 - 함수만들기 while, if, for 문
    기타/R(아르) 2021. 2. 18. 09:55

    사용자 정의 함수 만들기

    my_fun = function(a,b){
      return (a+b) //리턴시킬 값은 반드시 ()로 둘러싸야한다
    }
    my_fun2 = function(a,b){
      a+b
    }

     

     


    조건문 만들기

    뭘먹을까 <- function(money){
      
      if(money >=10000){
        print("갈비탕 먹고 라떼먹자")
      }else{
        print("김밥먹고 커피믹스 마시자")
      }
      
    }
    뭘먹을까(12000)
    "갈비탕 먹고 라떼먹자"

     


    ifelse 조건문 => 자바의 3항 연산자랑 비슷 (조건)? 참:거짓

    my_fun4 <- function(n){
      return (ifelse (n %% 3 == 0,n^2, 0)) 
    }

     


    if / else if / else

    tail=""
    grade=""
    
    mygrade = function(score){
      if(score >= 90){
        grade = "a"
      }else if(score >= 80){
        grade = "b"
      }else if(score >= 70){
        grade = "c"
      }
      else if(score >= 60){
        grade = "d"
      }else {
        grade = "f"
      }
      
      if(score %% 10 >=5 && score >=60){
        tail ="+"
      }else if (score < 60){
        tail = ""
      }else {
        tail = "0"
      }
      return (paste(grade,tail))
    }

     


    연습문제

     -가 나오지 않는 수식 (if문 사용)

    do_help <- function(x,y){
      if (x < y){
        return (y-x)
      }else{
        return (x-y)
      }
    }
    

    혹은 (삼항연산자 사용)

    do_help2 <- function(x,y){
      return(ifelse(x<y , y-x, x-y))
    }

    결과는 둘다 같다 

    > do_help(3,2)
    [1] 1
    > do_help(2,4)
    [1] 2

     

    조건에 따른 문구 

    travel2 <- function(a){
      
      if(a=="봄" || a=="가을"){
        cat(a,"여행이 최고죠")
      }else {
        print("내년 봄이나 가을에 여행가세요")
      }
      
    }

    while 루프문

    hab = function(a,b){
      sum = 0
      n = a
      while (TRUE){
        sum = sum+n
        n = n+1
        if(n == b){
          sum = sum+n
          break
        }else{
          next
        }
      }
      return(sum)
    }
    
    hab(1,100)
    
    결과 5050
    과자 <- c("새우깡", "맛동산", "자갈치", "칸초", "허니버터칩")
    cnt <- 0
    
    while(cnt < length(과자)){
      cnt = cnt+1
      cat("내사랑",과자[cnt],"\n")
    }

    내사랑 새우깡 
    내사랑 맛동산 
    내사랑 자갈치 
    내사랑 칸초 
    내사랑 허니버터칩 

     

     


    for문

     

    gugudan = function(a){
      
      #변수 in 반복시작 값: 반복 종료값
      #1:9 1~9까지
      for(i in 1:9){
        cat(a, "*", i, "=", (a*i), "\n")
      }
      
    }
    
    gugudan(99)

    99 * 1 = 99 
    99 * 2 = 198 
    99 * 3 = 297 
    99 * 4 = 396 
    99 * 5 = 495 
    99 * 6 = 594 
    99 * 7 = 693 
    99 * 8 = 792 
    99 * 9 = 891 

     


    연습문제들

    for (i in 1:length(과자)){
      cat("내사랑",과자[i], "\n")
    }

    내사랑 새우깡 
    내사랑 맛동산 
    내사랑 자갈치 
    내사랑 칸초 
    내사랑 허니버터칩 

     

    for (i in 1:length(과자)){
      
      if(과자[i] == "맛동산" || 과자[i] == "자갈치"){
        cat(과자[i],"너 미워!", "\n")
      }else{
        cat(과자[i],"너 좋아!", "\n")
      }
    
    }
    

    새우깡 너 좋아! 
    맛동산 너 미워! 
    자갈치 너 미워! 
    칸초 너 좋아! 
    허니버터칩 너 좋아!

     

    for4 <- function(x){
      for(i in 1:x){
        i = i*10
        cat(i,"번 앞으로 나오세요! \n")
      }
    }
    
    for4(3)

    10 번 앞으로 나오세요! 
    20 번 앞으로 나오세요! 
    30 번 앞으로 나오세요! 

     

    setwd("c://Temp")
    veg<-readLines("채소.txt", encoding="UTF-8")
    veg
    x<-0
    
    for(i in 1:length(veg)){
      cat(veg[i], "좋아요 \n")
      
    }

    감자 좋아요 
    고구마 좋아요 
    버섯 좋아요 
    당근 좋아요 
    양배추 좋아요 

    '기타 > R(아르)' 카테고리의 다른 글

    다양한 정형데이터 분석 기법들  (0) 2021.02.19
    연습문제2 다양한 자료 불러오기  (0) 2021.02.17
    연습문제 정리1  (0) 2021.02.16

    댓글

Designed by Tistory.