输入predict(),包含在用户定义的函数中 - R.

时间:2017-08-18 19:16:24

标签: r user-defined-functions predict

我正在尝试编写一个用户定义的函数,其中包含predict()语句。在predict()语句中,我必须指定newdata = ...,这里我必须指定我想要用于依赖变量和独立变量的数据。但是,如果我将函数参数(my_fun)传递给predict(),我会得到错误

Error in eval(expr, envir, enclos) : object 'X' not found

有没有人知道如何在predict()语句中使用我的函数参数? 我已经尝试了类似deparse(substitute(iv))的内容,但这不起作用。

请参阅我在下面写的功能。

my_fun <- function(riskdrivers, iv, dv, df) {

  #Fit the model
  form <- formula(paste(dv, "~", iv, "+", paste(riskdrivers, collapse="+")))
  fit <- glm(form, family=binomial(link='logit'), data=df)
  summary(fit)

  #Get predicted values
  df$pred <- predict(fit, newdata = data.frame(iv==df[, iv], riskdrivers[1]==df[ ,riskdrivers[1]], riskdrivers[2]==df[, riskdrivers[2]]), type="response")
}

my_fun(riskdrivers = c("A", "B"), iv = "X", dv = "Y", df = mydf)

0 个答案:

没有答案