1. 조건 판단문

 - if

x <- 10; y <- 5
if(x + y >= 10){
  cat("참일 경우 결과 : ",x+y)
}else{
  print("거짓일 경우")
}

 

# mpg dataset 사용 (자동차 연비)
install.packages("ggplot2") # 라이브러리 설치
library(ggplot2) # 라이브러리 프로젝트에 추가
mpg
mpg <- as.data.frame(ggplot2::mpg) # data frame으로 형변환
head(mpg,3)
# manufacturer model displ year cyl      trans drv cty hwy fl   class
# 1         audi    a4   1.8 1999   4   auto(l5)   f  18  29  p compact
# 2         audi    a4   1.8 1999   4 manual(m5)   f  21  29  p compact
# 3         audi    a4   2.0 2008   4 manual(m6)   f  20  31  p compact
str(mpg)
dim(mpg) # 234  12 - 행수 열수
colnames(mpg) # 행 이름 출력
mpg$total <- (mpg$cyl + mpg$hwy)/2
head(mpg,3)
mean(mpg$total) # 평균
if(mean(mpg$total) >= 20){
  print("우수연비")
}else{
  print("일반")
}

 

- ifelse(조건, 참일때 실행값, 거짓일 때 실행값)

mpg$grade <- ifelse(mpg$total >= 30, 'A', ifelse(mpg$total >= 25, 'B',ifelse(mpg$total >= 20, 'C','D')))
head(mpg,3)
mdf[mdf$c1 == 2,]    # column 2인 데이터들
subset(mdf, c1==2)   # 주어진 조건에 맞는 데이터를 출력

mdf[mdf$c1 == 2 & mdf$c2 =='lee',]
subset(mdf, c1==2 & c2 == 'lee')

mdf$c2 <- ifelse(mdf$c2 == 'lee', NA, mdf$c2) #3항 연산자
                     # ifelse(조건, 참일때 출력할 값, 거짓일 때 출력할 값)

# 행 추가
mdf$c4 <- c(1,2,3) 

# 행 추가
mdfc <- cbind(mdf, c5=c("m","b", "c"))

# 열 추가
mdfr <- rbind(mdf, c(1,"choi"))

# 열 삭제
mdfr[,"c3"] <- NULL

# 행 삭제
mdfr <- mdfr[-1,] # 여집합 이용 1 행 제거

 

- switch(출력할 index or key, index1의 값, index2의 값, ...)

switch("age",id="hong", age=33, name="tom") #33

a <- 1
switch(a, mean(1:10), sd(1:10))              # mean(1:10) - 5.5

 

- which

name <- c("kor","eng","mat","kor")
which(name == 'kor') # index 반환 - 1 4

 

 

2. 반복문 : for , while, repeat

 - for

obj <- 1:10
for (n in obj) {
  if(n %% 2 == 0) print(n) # %% : 나머지
}# 짝수

for (n in obj) {
  if(n %% 2 == 0)
    next # continue
  else{
    print(n)
  }
}# 홀수

 

 - while

i <- 1
while(i < 10){
  res =  2 * i
  cat(2, '*', i, '=', res,"\n")
  i = i + 1
}

i <- 0
while(T){ # TRUE 권장
  i = i + 1
  print(i)
  if(i == 5) break
}
cat('반복문 수행 후 i : ', i) # 5

 

- repeat

cnt <- 1
repeat{ # while(T)
  print(cnt)
  cnt = cnt + 2
  if(cnt > 10) break
}

 

'BACK END > R' 카테고리의 다른 글

[R] R 정리 8 - Web Scraping, DB  (0) 2021.01.29
[R] R 정리 7 - 내장함수, 시각화  (0) 2021.01.28
[R] R 정리 5 - 도수 분포표  (0) 2021.01.28
[R] R 정리 4 - 데이터 입출력  (0) 2021.01.28
[R] R 정리 3 - 자료구조  (0) 2021.01.27

+ Recent posts

1