이 예제가 도움이되기를 바랍니다. 중괄호를 사용하여 스위처 체인저 녀석 안에 모든 것이 포함되어 있는지 확인합니다 (미안하지만 기술 용어는 모르지만 = 기호 앞에 오는 용어는 무슨 일이 일어나는지 변경합니다). 저는 switch를 좀 더 통제 된 if () {} else {}
문장 으로 생각 합니다.
스위치 기능이 동일 할 때마다 우리가 제공하는 명령이 변경됩니다.
do.this <- "T1"
switch(do.this,
T1={X <- t(mtcars)
colSums(mtcars)%*%X
},
T2={X <- colMeans(mtcars)
outer(X, X)
},
stop("Enter something that switches me!")
)
do.this <- "T2"
switch(do.this,
T1={X <- t(mtcars)
colSums(mtcars)%*%X
},
T2={X <- colMeans(mtcars)
outer(X, X)
},
stop("Enter something that switches me!")
)
do.this <- "T3"
switch(do.this,
T1={X <- t(mtcars)
colSums(mtcars)%*%X
},
T2={X <- colMeans(mtcars)
outer(X, X)
},
stop("Enter something that switches me!")
)
다음은 함수 내부입니다.
FUN <- function(df, do.this){
switch(do.this,
T1={X <- t(df)
P <- colSums(df)%*%X
},
T2={X <- colMeans(df)
P <- outer(X, X)
},
stop("Enter something that switches me!")
)
return(P)
}
FUN(mtcars, "T1")
FUN(mtcars, "T2")
FUN(mtcars, "T3")