在R函数中管理参数输入值的使用

时间:2019-05-18 15:38:52

标签: r function

我的函数foo用于使用变量dst中的一个来计算名为f的变量。

例如,如果用户使用foo(n = 30:35, s = 1:2, t = 3:5, f = 7),那么我希望foo首先使用d,然后依次tf计算s }。因此,在输出中,我期望 6 d s(即,来自t 2个,来自f的1个和来自{{1 }} )。

我希望前2个s用于n,下一个t用于n,其余f用于{ {1}}。我可以用这种方法来管理函数内的n吗?

s

1 个答案:

答案 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)