如何在拟合的glm模型中更改变量的名称?

时间:2018-06-07 15:41:34

标签: r glm

我有一个模型(glm)的模型对象,其他人在R中构建。

模型中有几个我想要重命名的变量。我无法轻松访问重新运行代码,并在数据框中使用不同的变量名称构建模型。

例如,他们称某个变量" previous_customer"并将其编码为虚拟变量。但在我使用的数据框中,我有一个名为" previous_customer"的分类变量。以及我们正在运行的代码需要" previous_customer"在几个不同的地方成为一个分类变量。

可以替换我开始使用的代码中的previous_customer,但我希望有一些方法可以重命名" previous_customer"在模型对象中我正在使用" previous_customer_flag"之类的东西。如果我能做到这一点,我需要大约2秒来处理这个问题。但是,令我感到惊讶的是,在构建模型后,我并没有真正找到关于如何重命名变量的任何内容。

有谁知道如何做到这一点,或者由于某些原因它是不可能的?

2 个答案:

答案 0 :(得分:1)

@AndrewGustar是对的:通过在整个列表中替换变量名称的每个实例来完成可以的方式。但是这些名称出现在许多地方,如角色向量和语言对象。

更简单的选择是编写一个围绕predict的函数来准备数据集的列:

predict_with_rename <- function(object, newdata = NULL, ...) {
    if (!is.null(newdata)) {
        newdata[["previous_customer"]] <- newdata[["previous_customer_flag"]]
    }
    predict(object, newdata, ...)
}

答案 1 :(得分:-1)

自己寻找最佳解决方案时遇到这个问题。

我最终使用了

names(model) <- sub("old_name", "new_name", names(model))