코딩초보 김씨
[R] 조건문, 반복문, 함수 본문
1. 조건문
※ else는 반드시 if문의 코드블록이 끝나는 부분에 있는 }와 같은 줄에 작성해야 함 ※
1) if-else문의 기본 문법
if(비교 조건) {
조건이 참일 때 실행할 명령문(들)
} else {
조건이 거짓 일 때 실행할 명령문(들)
}
2) 다중 if-else 문
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'
}
print(grade)
3) ifelse 문
c <- ifelse(a>b, a, b)
print(c)
2. 반복문 (for문, while문)
---------------------------------------- for 문 -----------------------------------------
1) for문의 기본 문법
for (반복 변수 in 반복 범위) {
반복할 명령문(들)
}
(예시 1. 간단 기초)
for(i in 6:10) {
print(i)
}
(출력 결과)

(예시 2. iris에서 꽃잎의 길이에 따른 분류 작업)
# iris의 행의 수
nrow <- nrow(iris)
# 비어있는 벡터 선언
mylabel <- c()
# 꽃잎의 길이에 따라 레이블 결정
for(i in 1:nrow){
if(iris$Petal.Length[i]<=1.6){
mylabel[i] <- 'L'
}else if (iris$Petal.Length[i]>=5.1){
mylabel[i] <- 'H'
}else{
mylabel[i] <- 'M'
}
}
# 레이블 출력
print(mylabel)
# 꽃잎의 길이와 레이블 결합
newds <- data.frame(iris$Petal.Length, mylabel)
# 새로운 데이터셋 출력
head(newds)
(출력 결과)

2) for문 조건에 따른 제어 : break, next
(1) break : 특정 조건을 만족하면 반복문을 벗어남
(예시. 1부터 10까지의 합을 계산하는데, i가 5 이상이면 break)
sum <- 0
for(i in 1:10) {
sum <- sum + i
if (i>=5) break
}
sum
(출력 결과)

(2) next : 특정 조건이 성립하면 뒤는 무시하고 처음으로 돌아감
(예시. 1부터 10까지의 합을 계산하는데, i가 5 이상이면 break)
sum <- 0
for(i in 1:10) {
if (i%%2==0) next
sum <- sum + i
}
sum
(출력 결과)

---------------------------------------- while 문 -----------------------------------------
3) while문의 기본 문법
while (비교조건) {
반복할 명령문(들)
}
(예시. 1부터 100까지의 합계 계산)
# 빈 객체 생성
sum <- 0
# i 지정
i <- 1
while(i <=100) {
sum <- sum + i # sum에 i 값을 누적
i <- i + 1 # i 값을 1 증가시킴
}
print(sum)
(출력 결과)

3. apply() 함수
: 반복 작업의 대상이 매트릭스나 데이터프레임의 행(row) 또는 열 (column)인 경우 사용
apply(데이터셋, 행/열방향 지정, 적용 함수)
(예시. iris dataset 행/열방향으로 평균값 계산)
apply(iris[,1:4], 1, mean) # row 방향으로 함수 적용
apply(iris[,1:4], 2, mean) # col 방향으로 함수 적용
4. 사용자 정의 함수
1) 사용자 정의 함수의 기본 문법
함수명 <- function(매개변수 목록) {
실행할 명령문(들)
return(함수의 실행 결과)
}
2) 매개변수에 초기값 설정하기
(예시)
mydiv <- function(x,y=2) {
result <- x/y
return(result)
}
# 매개변수 이름과 매개변수값을 쌍으로 입력
mydiv(x=10,y=3)
# 매개변수값만 입력
mydiv(10,3)
# x에 대한 값만 입력(y 값이 생략됨)
mydiv(10)
(출력 결과)

3) 반환하는 결과값이 여러 개일 때
(예시. 합과 곱 계산)
myfunc <- function(x,y) {
val.sum <- x+y
val.mul <- x*y
return(list(sum=val.sum, mul=val.mul))
}
result <- myfunc(5,8)
s <- result$sum
m <- result$mul
cat('5+8=', s, '\n')
cat('5*8=', m, '\n')
(출력 결과)

★★ cat 함수 ★★
cat 함수는 개행을 기본으로 하지 않아서 개행을 해주려면 '\n' 을 추가해주어야 함
# print 함수
print(1,2)
[1] 1
# cat 함수
cat(1,2,'\n')
[1] 1 2
'R' 카테고리의 다른 글
| [R] 단일변수 자료의 분석,탐색 방법 (0) | 2021.06.18 |
|---|---|
| [R] 조건에 맞는 데이터의 위치 찾기 (0) | 2021.06.18 |
| [R] 변수와 벡터 - 복습 문제 & 정답 (0) | 2021.06.18 |
| [R] 5가지 데이터 유형 (0) | 2021.06.17 |
| [R] 설치 및 시작 + 저장 위치(디렉토리) 설정 (0) | 2021.06.17 |