如何将 UDF 的输入参数传递给 sapply
Posted
技术标签:
【中文标题】如何将 UDF 的输入参数传递给 sapply【英文标题】:How to pass an input parameter for a UDF to sapply 【发布时间】:2019-02-04 10:31:25 【问题描述】:我有一个值向量和一个带有多个参数的用户定义函数。我想将我的 UDF 应用到这个向量中的每个值,而这个向量中的每个条目也是 UDF 的输入参数
t <- 1:5
myfunc <- function (setvar, var)
return(setvar * var)
sapply(t, myfunc(setvar = 2), var = t)
所以在这种情况下,我想要的结果是:
2 4 6 8 10
【问题讨论】:
【参考方案1】:你可以的
sapply(t, myfunc, setvar = 2)
#[1] 2 4 6 8 10
或者要了解您传递的具体内容,请使用匿名函数
sapply(t, function(x) myfunc(2, x))
另外,t
是 R 中的一个基本函数,因此最好为变量使用其他名称。
【讨论】:
非常感谢。这非常有效。来自 perl 背景,其中所有事情都由循环 R 完成,有时我仍然感到困惑。以上是关于如何将 UDF 的输入参数传递给 sapply的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Set/HashSet 作为参数传递给 Spark 中的 UDF?
如何在不指定每一列的情况下将整行作为参数传递给 Spark(Java)中的 UDF?
如何将复杂的 Java 类对象作为参数传递给 Spark 中的 Scala UDF?