【问题标题】:How to pass an input parameter for a UDF to sapply如何将 UDF 的输入参数传递给 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

【问题讨论】:

    标签: r user-defined-functions sapply


    【解决方案1】:

    你可以的

    sapply(t, myfunc, setvar = 2)
    #[1]  2  4  6  8 10
    

    或者要了解您传递的具体内容,请使用匿名函数

    sapply(t, function(x) myfunc(2, x))
    

    另外,t 是 R 中的一个基本函数,因此最好为变量使用其他名称。

    【讨论】:

    • 非常感谢。这非常有效。来自 perl 背景,其中所有事情都由循环 R 完成,有时我仍然感到困惑。
    猜你喜欢
    • 2018-05-10
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    • 2019-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多