Использование вектора символьных переменных в определенной части функции lm () функции R - PullRequest
0 голосов
/ 21 марта 2019

Я выполняю регрессионный анализ в R, который выглядит следующим образом:

lm_carclass_mod <- lm(log(count_faves+1)~log(views+1)+dateadded+group_url+license+log(precontext.nextphoto.views+1)+log(precontext.prevphoto.views+1)+log(oid.Bridge+1)+log(oid.Face+1)+log(oid.Quail+1)+log(oid.Sky+1)+log(oid.Car+1)+log(oid.Auditorium+1)+log(oid.Font+1)+log(oid.Lane+1)+log(oid.Bmw+1)+log(oid.Racing+1)+log(oid.Wheel+1),data=flickrcar_wo_country)
confint(lm_carclass_mod,level=0.95)
summary(lm_carclass_mod)

Зависимая переменная, а также некоторые независимые переменные являются довольно переменными на протяжении всего моего анализа, поэтому я хотел бы продолжать вставлять их вручную .

Однако я ищу способ заменить все переменные "oid. ..." одной функцией.

До сих пор я придумал следующего :

g <- paste("log(",variables,"+1)", collapse="+")

К сожалению, это не работает внутри функции lm (). Также не формула как это:

g <- as.formula(
  paste("log(",variables,"+1)", collapse="+")
  )

Векторные переменные содержат следующие элементы:

variables <- ("oid.Bridge", "oid.Face", "oid.Quail", "oid.Off-roading", "oid.Sky", "oid.Car", "oid.Auditorium", "oid.Font", "oid.Lane", "oid.Bmw", "oid.Racing", "oid.Wheel")     

В конце моя регрессионная модель должна выглядеть примерно так:

lm_carclass_mod <- lm(log(count_faves+1)~log(views+1)+dateadded+group_url+license+log(precontext.nextphoto.views+1)+log(precontext.prevphoto.views+1)+g,data=flickrcar_wo_country)
confint(lm_carclass_mod,level=0.95)
summary(lm_carclass_mod)

Заранее спасибо за помощь!

1 Ответ

1 голос
/ 21 марта 2019

Вам нужно будет преобразовать обе части в строку, а затем составить формулу:

#the manual bit
manual <- "log(count_faves+1)~log(views+1)+dateadded+group_url+license+log(precontext.nextphoto.views+1)+log(precontext.prevphoto.views+1)"

#the variables:
oid_variables <- c("oid.Bridge", "oid.Face", "oid.Quail", "oid.Off-roading", "oid.Sky", "oid.Car", "oid.Auditorium", "oid.Font", "oid.Lane", "oid.Bmw", "oid.Racing", "oid.Wheel")     

#paste them together 
g <- paste("log(", oid_variables, "+1)", collapse="+")

#make the formula
myformula <- as.formula(paste(manual, '+', g))

Затем вы добавляете формулу в lm:

lm_carclass_mod <- lm(myformula, data=flickrcar_wo_country         
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...