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
我想使用 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