Как мне изменить имя переменной в подобранной модели glm? - PullRequest
0 голосов
/ 07 июня 2018

У меня есть объект модели из модели (glm), который кто-то еще построил в R.

В модели есть пара переменных, которые я хотел бы переименовать.У меня нет легкого доступа, чтобы повторно запустить их код и построить модель с другим именем переменной в их фрейме данных.

Например, они назвали определенную переменную «previous_customer» и закодировали ее как фиктивныйпеременная.Но в фрейме данных, который я использую, у меня есть категориальная переменная с именем «previous_customer», и код, который мы запускаем, требует, чтобы «предыдущий_ клиент» был категориальной переменной в нескольких разных местах.

I может заменить предыдущий_климент везде в коде, с которого я начинаю, но я надеялся, что есть какой-то способ просто переименовать "предыдущий_климер" в объекте модели, с которым я работаю, во что-то вроде "предыдущий_кустер_флаг".Если бы я мог сделать это, мне потребовалось бы около 2 секунд, чтобы решить эту проблему.Тем не менее, я удивлен, что на самом деле я не нашел ничего о том, как переименовать переменную после построения модели.

Кто-нибудь знает, как это сделать, или если по какой-то причине это невозможно?

1 Ответ

0 голосов
/ 07 июня 2018

@ AndrewGustar прав: ваш путь можно сделать, заменив каждый экземпляр имени переменной в списке.Но эти имена встречаются во многих местах как в виде символьных векторов, так и в качестве языковых объектов.

Более простой вариант - написать функцию, заключенную в predict, которая подготавливает столбцы набора данных:

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