我的函数foo
用于使用变量d
,s
或t
中的一个来计算名为f
的变量。
例如,如果用户使用foo(n = 30:35, s = 1:2, t = 3:5, f = 7)
,那么我希望foo
首先使用d
,然后依次t
和f
计算s
}。因此,在输出中,我期望 6 d
s(即,来自t
的 2个,来自f
的1个和来自{{1 }} )。
我希望前2个s
用于n
,下一个t
用于n
,其余f
用于{ {1}}。我可以用这种方法来管理函数内的n
吗?
s
答案 0 :(得分:1)
我们可以遍历't','f','s'的元素,将(+
)与'n'相加,并在list
中得到输出
foo <- function(n, s = NULL, t = NULL, f = NULL){
dts <- if(!is.null(t)) sapply(t, `+`, n) else NULL
dfs <- if(!is.null(f)) sapply(f^2, `+`, n) else NULL
ms <- if(!is.null(s)) sapply(s/2, `+`, n) else NULL
rs <- if(!is.null(ms)) ms + 1 else NULL
dss <- if(!is.null(ms)) ms + rs else NULL
list(t_out =dts, f_out = dfs, s_out = dss)
}
# Example of use:
foo(n = 30:35, s = 1:2, t = 3:5, f = 7)