我正在尝试找出如何创建可在 R 的标准预测函数中使用的函数。
示例:
someFunction <- function(x){
vec <- 4
ans <- cbind(x, vec)
return(ans)
}
newIris <- predict(someFunction, iris)
我想这与 R 中的函数编程有关的 R 中的S3或S4类有关,但是我还没有找到关于此的简单解释问题。
答案 0 :(得分:0)
predict
通常不应用于函数。将其应用于预测模型。其中有许多不同类型,因此predict
有许多不同版本。 methods(predict)
将向您显示哪些类具有可用的预测功能。
methods(predict)
[1] predict.ar* predict.Arima*
[3] predict.arima0* predict.glm
[5] predict.HoltWinters* predict.lm
[7] predict.loess* predict.mlm*
[9] predict.nls* predict.poly*
[11] predict.ppr* predict.prcomp*
[13] predict.princomp* predict.smooth.spline*
[15] predict.smooth.spline.fit* predict.StructTS*
例如,如果您使用lm
制作线性模型
LMI = lm(Sepal.Length ~ ., iris[,1:4])
class(LMI)
[1] "lm"
模型的类为lm
,因此predict(LMI)
将使用方法predict.lm
。如果加载程序包,则可能会添加其他预测方法。例如,如果使用library(rpart)
加载rpart软件包,则predict.rpart
方法将被添加到列表中。
如果要定义自己的预测方法,则可能应该定义自己的模型类,然后创建特定于该类的预测方法。查看某些现有预测方法的源代码可能是一个好主意。因此,例如,尝试输入predict.lm
简而言之,predict
查看对象(模型)的类并选择相应的预测方法。必须为要应用predict
的每个类提供此预测方法。