R 기초 204 제어문 (Control Structures)
preface 이번 포스트에서는 제어문(if, while, for, switch, ifelse)을 사용하는 방법에 대하여 설명합니다.
다음 자료를 참고하였습니다:
Control Structures: if, while, for, switch, ifelse
R 에서도 일반적인 제어문을 사용할 수 있습니다. 하지만 제어문(if, for)을 사용하는 것보다 가능하면 내장 함수를 사용하는 것이 더 효율적입니다. 꼭 필요한 경우에만 사용합시다.
if-else
if (cond) {expr}
if (cond) {expr1} else {expr2}
for
for (var in seq) {expr}
while
while (cond) {expr}
switch
switch(expr, ...)
ifelse
ifelse(test,yes,no)
Example
# transpose of a matrix
# a poor alternative to built-in t() function
mytrans <- function(x) {
if (!is.matrix(x)) {
warning("argument is not a matrix: returning NA")
return(NA_real_)
}
y <- matrix(1, nrow=ncol(x), ncol=nrow(x))
for (i in 1:nrow(x)) {
for (j in 1:ncol(x)) {
y[j,i] <- x[i,j]
}
}
return(y)
}
# try it
z <- matrix(1:10, nrow=5, ncol=2)
tz <- mytrans(z)