我有一个模型(glm)的模型对象,其他人在R中构建。
模型中有几个我想要重命名的变量。我无法轻松访问重新运行代码,并在数据框中使用不同的变量名称构建模型。
例如,他们称某个变量" previous_customer"并将其编码为虚拟变量。但在我使用的数据框中,我有一个名为" previous_customer"的分类变量。以及我们正在运行的代码需要" previous_customer"在几个不同的地方成为一个分类变量。
我可以替换我开始使用的代码中的previous_customer,但我希望有一些方法可以重命名" previous_customer"在模型对象中我正在使用" previous_customer_flag"之类的东西。如果我能做到这一点,我需要大约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))