R:如何在给定向量的分量上评估函数

  • 本文关键字:分量 评估 函数 向量 r
  • 更新时间 :
  • 英文 :


一方面,我有一个函数,它将向量的组件作为参数。这个功能是这样的:

y_fun = function( x1, x2, x3, x4 ) 2*x1 + x2*x3*log( x4 )

另一方面,我确实有组件

x1, x2, x3, x4

但是,只有向量(带有这些分量(由给出

vect = c(x1, x2, x3, x4)

对于我的目的来说,将向量组件的值一个接一个地输入到函数的参数中是不太实际的。如何可能在给定向量的元素上评估函数?我尝试过这个(没有成功(:

y_fun( as.list( vect ) )

和这个

elements = noquote( paste0( vect, collapse = ",") )

y_fun( elements )

我们可以使用do.call

do.call(y_fun, as.list(vect))
[1] 2

vect被创建为未命名向量。它适用于这种情况,但如果函数有很多参数,并且在vect中传递的参数的顺序不相同,则最好使用命名向量

vect <- c(x1 = x1, x2 = x2, x3 = x3, x4 = x4)

或者简单地命名为list

lst1 <- list(x1 = x1, x2 = x2, x3 = x3, x4 = x4)
do.call(y_fun, lst1)

最新更新