R代码:将UDF与多个参数用于应用功能



我的udf:

testfn = function(x1, x2, x3){
if(x1 > 0){y = x1 + x2 + x3}
if(x1 < 0){y = x1 - x2 - x3}
return(y)
}

我的样本测试集:

test = cbind(rep(1,3),c(2,4,6),c(1,2,3))

应用程序的运行:

apply(test, 1, testfn, x1 = test[1], x2 = test[2], x3 = test[3])

这是我遇到的错误:

fun中的错误(newx [,i],...):未使用的参数(newx [,i])

我应该如何使用应用程序,以便我的UDF通过行评估测试集?

我期待:

[1] 4 7 10

我提供了简化的通用UDF,因为我需要使用更复杂的UDF。

您可以通过将函数直接传递到apply

来完成同一操作
apply(test, 1, function(x) if(x[1] > 0) sum(x) else x[1] - x[2] - x[3])
[1]  4  7 10

如果要使用UDF,则需要修改它。

testfn = function(mydf){
  if(mydf[1] > 0){y = mydf[1] + mydf[2] + mydf[3]}
  if(mydf[1] < 0){y = mydf[1] - mydf[2] - mydf[3]}
  return(y)
}
apply(test, 1, testfn)

相关内容

  • 没有找到相关文章

最新更新