小编Bra*_*bee的帖子

如何用两个输入编写泛型函数?

我是编程方面的新手,我遇到了R与泛型函数有关的问题:有多个输入时如何编写?

举一个简单的例子,关于数据集和函数

z <- c(2,3,4,5,8)
calc.simp <- function(a,x){a*x+8}
# Test the function:
calc.simp(x=z,a=3)
[1] 14 17 20 23 32
Run Code Online (Sandbox Code Playgroud)

现在,我更改z的类:class(z)<-'simp'因为有两个输入,我应该如何编写泛型函数'calc'?我的尝试和错误如下:

calc <- function(x) UseMethod('calc',x)
calc(x=z)
Error in calc.simp(x = z) : argument "a" is missing, with no default
Run Code Online (Sandbox Code Playgroud)

calc <- function(x,y) UseMethod('calc',x,y)
Error in UseMethod("calc", x, y) : unused argument (y)
Run Code Online (Sandbox Code Playgroud)

因为我只是一个初学者,所以我的困惑可能是根本的困惑。请帮忙!非常感谢你!

r generic-programming

12
推荐指数
1
解决办法
144
查看次数

标签 统计

generic-programming ×1

r ×1