【问题标题】:R function that applies my list directly in for the arguments直接将我的列表应用于参数的 R 函数
【发布时间】:2022-12-10 23:40:14
【问题描述】:

我不确定如何问这个问题,所以这里有一个例子

ex_func = function(x,y){
return(x^4 -x^2 -y)}
# and I want to run something like
ex_func(runif(2,1,0)

runif(2,1,0) 返回一个列表,len 为 2。我期待它自动填充我的函数的参数,并且想知道我能做什么。显然,我可以将它保存到某个变量中,然后获取索引,但我希望它比这更自动化......这不是我正在处理的确切问题,但它足以作为教学助手。

【问题讨论】:

    标签: r


    【解决方案1】:

    问题是 runif 的结果被传递给函数的 x 参数,即默认情况下 R 不会将向量拆分为多个参数。虽然有一些选项可以做到这一点,但一个简单的解决方法是让你的函数成为一个参数的函数,并使用索引来提取元素:

    ex_func <- function(x) {
      x[1]^4 - x[1]^2 - x[2]
    }
    set.seed(123)
    
    ex_func(runif(2, 0, 1))
    #> [1] -0.8641665
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-17
      • 1970-01-01
      • 2013-12-14
      • 2014-03-17
      • 2014-08-05
      • 2018-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多