반응형
2. 제어문과 함수
2.1 조건문
x <- 7
print(x)
# x가 짝수면 출력
if (x %% 2 == 0)
print("짝수")
# 짝수, 홀수 출력
if (x %% 2 == 0)
print("짝수")
else
print("홀수")
# 위와 동일
# ifelse(조건식, TRUE일 때, FALSE일 때)
ifelse(x %% 2 == 0, "짝수", "홀수")
a <- -9
if (a %% 2 == 0) {
print(a)
print("짝수입니다.")
print(abs(a))
} else {
print(a)
print("홀수입니다.")
print(abs(a))
}
point <- 95
# 정수 몫
grade <- point %/% 10
print(grade)
# as.character(): 숫자를 문자로
# as.numeric()
# as.logical()
# switch(조건식, 조건 1, 조건 2, 조건 3, 그 외의 조건)
switch(
as.character(grade),
"10" = print("A"),
"9" = print("A"),
"8" = print("B"),
"7" = print("C"),
"6" = print("D"),
print("F")
)
2.2 반복문
sum1 <- 0
# 1부터 10까지 1씩 증가
# for(개별값 in 집합변수)
for (i in seq(1, 10, by = 1))
sum1 <- sum1 + i
sum1
a <- 10
# print("a = " + a)
# 공백문자로 연결됨
paste("a=", a)
# 줄 바꿈을 하지 않음
cat("a =", a)
# 줄 바꿈을 추가
# cat("a =", a, "\n")
print(a)
dan <- 3
for (i in seq(1, 9)) {
cat(paste(dan, "x", i, "=", dan * i, "\n"))
}
gugu <- function() {
# 입력을 기다린다
dan <- readline("단을 입력하세요: ")
dan <- as.integer(dan)
for (i in seq(1, 9)) {
cat(paste(dan, "x", i, "=", dan * i, "\n"))
}
}
gugu()
# 출력문에서 줄바꿈을 하고 싶을 경우 cat 사용
for (i in seq(2, 9)) {
cat(paste("\n===== ", i, "단 =====\n"))
for (j in seq(1, 9)) {
cat(paste(i, "x", j, "=", i * j, "\n"))
}
}
sum <- 0
i <- -1
while (i <= 10) {
sum <- sum + i
i <- i + 1
}
sum
sum3 <- 0
i <- 1
# 탈출 조건을 직접 작성해야 함
repeat {
sum3 <- sum3 + i
i <- i + 1
if (i > 10)
break
}
sum3
2.3 내장 함수
sqrt(5)
sqrt(c(1, 2, 3, 4, 5))
## 통계 관련 함수
a = c(1, 2, 3, 4, 5, 6, 7, 8)
# 통계량 정보
summary(a)
# 평균
mean(a)
# 중앙값
median(a)
2.4 사용자 정의 함수
2.4.1 함수 이름은 좌변에 작성
2.4.2 리턴 값이 없는 함수
# 리턴 값이 없는 함수
hello <- function() {
print("hello")
}
hello()
2.4.3 리턴 값이 있고 인수가 없는 함수
# 리턴 값이 있고 인수가 없는 함수
test1 <- function() {
x <- 10
y <- 20
return(x * y)
}
test1()
2.4.4 리턴 값이 있고 인수가 있는 함수
# 리턴 값이 있고 인수가 있는 함수
test2 <- function(x, y) {
xx <- x
yy <- y
return(sum(xx, yy))
}
test2(10, 20)
2.4.5 함수에서 함수를 호출하는 경우
test3 <- function(x, y) {
x3 <- x + 1
y3 <- y + 1
x4 <- test2(x3, y3)
return(x4)
}
test3(9, 19)
# 함수의 계산 결과를 화면에 보이지 않고 변수에 대입하는 경우(invisible)
test4 <- function() {
x <- 10
y <- 10
# return(x * y)
return(invisible(x * y))
}
# 함수 호출. 결과는 화면에 보이지 않는다
test4()
# 함수의 리턴 값이 result 변수에 할당된다
result <- test4()
# 결괏값 확인
result
반응형