Сподіваюся, цей приклад допоможе. Ви можете використовувати фігурні дужки, щоб переконатись, що у вас є все, що вкладено в перемикач перемикача (вибачте, я не знаю технічний термін, але термін, який передує знаку =, який змінює те, що відбувається). Я думаю про комутатор як про більш контрольовану купу 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")