r 中 glm 的用户定义函数不起作用

user defined function for glm in r not working

我想使用 glm 分别对每个预测变量执行逻辑回归。预测变量总数为 50,churn_flag 是目标变量,到目前为止我所做的是:-

lapply(c('A1','A2','A3','A4',.................'A50'),

   univariate_logistic <- function(var) {

     formula    <- as.formula(paste('churn_flag ~ ', var))
     res.logist <- glm(formula, data = split_train, family = binomial)

     summary(res.logist)
     })`

在运行一个函数之后,当我在函数内部传递一个变量名时,

univariate_logisitic(A1)

它给出错误,

Error in univariate_logistic(A1) : 


could not find function "univariate_logistic"

似乎在当前工作区中找不到您的函数,因为您是在 lapply 上下文中定义函数。如果您在该代码块之外编写函数,它应该可以工作。这应该给你一个想法。作为建议并为了提高可读性,我总是将函数编写为另一个实体;这样你就可以重用你的代码。所以你当前的代码可以写成:

univariate_logistic <- function(var) {
  cat("Current value: ", var , "\n")
}

lapply(c('A1','A2','A3','A4','A50'),
       univariate_logistic   
)

This prints the following output:

Current value:  A1 
Current value:  A2 
Current value:  A3 
Current value:  A4 
Current value:  A50