# 조건문 : [], if, if ~ else, ifelse

x <- 11
if( x%%2 ==0 ) print("짝수") else print("홀수")

ifelse(x%%2==0, "짝수","홀수")

y <- -9               
if(y%%2 == 0){        # 한줄 이상일 때 블럭으로 묶음
    print(y)
    print("짝수")
}else{
    print(y)
    print("홀수")
}

xx <- c(15,20,30,NA,45)  # NA ; 자료형으로 쓸 수 있는 결측값, 
xx

xx[xx <40]      # 40보다 작은 거
xx[xx %% 2!=0]  # 홀수

!is.na(xx)   # na면 t, 아니면 f
is.na(xx)
xx[is.na(xx)]

# 성적 출력 / switch
point <- 85   
grade <- point %/% 10  # 10으로 나눈 몫(정수)만 가져와라

switch(as.character(grade), # 형변환 ass
      '10' = print("A"),
      '9' = print("B"),
      '8' = print("C"),
      '7' = print("D"),
      print("F"))

sum <- 0
for(i in seq(1,10))
    sum <- sum+i
sum

dan <- 3
for(i in seq(1,9))
    cat(dan, "x", i, "=", dan*i, "\n")

print(class(dan)) #class는 자료형을 확인해준다.

gugu <- function(){
    dan <- readline("단을 입력하세요 : ")  #readline() : 줄 단위로 입력받아라 , 다 입력하고 ENTER 치면 넘어가겠다.
    dan <- as.integer(dan)                 # int로 형변환
    for(i in seq(1, 9)){
        cat(dan,"x", i, "=", dan*i, "\n")
    }
}
gugu()

print(class(dan)) #class는 자료형을 확인해준다.

gugu <- function(){
    dan <- readline("단을 입력하세요 : ")  #readline() : 줄 단위로 입력받아라 , 다 입력하고 ENTER 치면 넘어가겠다.
    dan <- as.integer(dan)                 # int로 형변환
    for(i in seq(1, 9)){
        cat(dan,"x", i, "=", dan*i, "\n")
    }
}
gugu()


dan <- 3
for(i in seq(1,9))
    cat(dan, "x", i, "=", dan*i, "\n")

sum1 <- 0
i <- 1
while(i <= 10){
    sum1 <- sum1 + i
    i <- i+1
}
sum1

sum1 <- 0
i <- 1
repeat{
    if(i>10) break
    else print(i)
    i <- i+1
}
sum1

for(i in seq(1,10)){
    count <- 0
    for(j in seq(1, i)){
        if(i%%j==0) {
            count <- count+1
        }
    }
    if(count == 2) print(i)
}


#구구단
for(i in 2:9){
    cat("\n=====",i,"단 ======\n")
    for(j in 1:9)
        cat(i," x ",j," = ",i*j,"\n")
    
}

x <- c(1,2,3,4,5)
max(x) #최댓값
min(x) #최솟값
median(x) #중위수
mean(x) #평균
summary(x) #통계량

hello <- function() {
    print("hello")
}
hello()


# 리턴값은 있지만 매개변수가 없는 것
func1 <- function() {
    x <- 10
    y <- 20
    return (x+y)
}
func1()

# 리턴값은 있지만 매개변수가 있는 것
func1 <- function(x,y){
    return(sum(x,y))
}
func1(1,2)

# 함수 안에 함수 사용하는 것
test <- function(x,y){
    xx <- x+1
    yy <- y+1
    xxx <- func1(xx,yy)
    return(xxx)
}
test(9,19)

test2 <- function(){
    x<-10
    y<-10
    return(invisible(x*y))    # 값을 화면에 출력하지 마라라
}
test2()  # invisible 때문에 값 출력 안됨
result <- test2()  # 리턴값 변수에 저장
result

# page 81





'R 프로그래밍' 카테고리의 다른 글

R 공부_데이터 처리  (0) 2019.07.18
R 공부_txt 파일 불러오기  (0) 2019.07.18
R 공부_ Day1_Data Frame  (0) 2019.07.18
R 공부_Day1_ 문자 다루는 함수  (0) 2019.07.18
R 공부_Day1_ 숫자를 다루는 함수  (0) 2019.07.18

+ Recent posts