Ich hoffe dieses Beispiel hilft. Sie können die geschweiften Klammern verwenden, um sicherzustellen, dass alles in dem Umschalter enthalten ist (leider kennen Sie den Fachbegriff nicht, aber den Begriff vor dem = -Zeichen, der ändert, was passiert). Ich stelle mir Switch als eine kontrollierte Reihe von if () {} else {}
Aussagen vor.
Jedes Mal, wenn die Schaltfunktion dieselbe ist, ändert sich jedoch der von uns bereitgestellte Befehl.
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!")
)
Hier ist es in einer Funktion:
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")