是否可以在R中编写自己的流量控制功能?例如,假设我们想编写一个案例类型语句。设置值然后检查内容是否符合案例值:
expo <- function (x,a) {
case(a)
C(1) return(x)
C(2) return(x^2)
C(3) return(x^3)
C(%in% c(4,5) return(x^5)
}
expo(2,1)
[2]
expo(2,2)
[4]
expo(2,3)
[8]
expo(2,4)
[32]
答案 0 :(得分:1)
以下是控制工作流程的两种方法。
expo <- function(x, a) {
switch(a,
"1" = x,
"2" = x^2,
"3" = x^3,
"4" = x^5,
"5" = x^5)
}
expo(2, 4)
expo2 <- function(x, a) {
if (a == 1) return(x)
if (a == 2) return(x^2)
if (a == 3) return(x^3)
if (any(a %in% c(4, 5))) return(x^5)
}
expo2(2,4)
答案 1 :(得分:0)
除了Roman的2,还有第三个:
expo3 <- function (x,a) {
switch(a,
x,x^2,x^3,x^5,x^5)
}
这里&#39; a&#39;是一个整数,它将评估相应的元素它可能返回的列表。也就是说,如果a = 2,那么它将返回&#39; x ^ 2&#39;,如果a是4或5,它将返回&#39; x ^ 5&#39;。请注意,您输入的内容如expo(2,7)
,它将返回NULL。