【发布时间】:2019-05-18 15:38:51
【问题描述】:
我的函数 foo 旨在使用以下参数之一计算名为 d 的变量:s、t 或 f。
例如,如果用户使用foo(n = 30:35, s = 1:2, t = 3:5, f = 7),我希望foo 首先使用t 计算d,然后是f,然后是s。因此,在输出中,我期望 6 ds(即,2 来自 t,1 来自 f,2 来自 s)。
我希望前 2 个ns 用于t,下一个n 用于f,剩下的ns 用于s。有没有办法以这种方式在函数内部管理ns?
foo <- function(n, s = NULL, t = NULL, f = NULL){
d1 <- if(!is.null(t)) t + n else NULL
d2 <- if(!is.null(f)) f^2 + n else NULL
m <- if(!is.null(s)) s/2 + n else NULL
r <- if(!is.null(m)) m + 1 else NULL
d3 <- if(!is.null(m)) m + r else NULL
data.frame(d = c(d1, d2, d3))
}
# Example of use:
foo(n = 30:35, s = 1:2, t = 3:5, f = 7)
【问题讨论】: