проблема с включением категориальных переменных аргумент newdata - PullRequest
0 голосов
/ 28 октября 2018

Я пытаюсь построить результаты линейной вероятностной модели, которая отображает вероятность события на основе пола участника и другой переменной (prs_ea_ALL).Я сталкиваюсь с сообщением об ошибке (см. Ниже), когда я включаю категориальную переменную "intyorn".Я не понимаю, почему это так.Может кто-нибудь помочь мне исправить это?

data2$gender =as.factor(data2$gender)

data2$intyorn =as.factor(data2$intyorn)

data2$EducAge20Recoded =as.factor(data2$EducAge20Recoded)

mylogit <- glm(EducAge20Recoded ~ gender + intyorn+ prs_ea_all + gxeaALL, data = data2, family = "binomial")

data3 <- with(data2, data.frame(prs_ea_all = mean(prs_ea_all), **intyorn**, gxeaALL = mean(gxeaALL), gender = factor(0:1)))

data3$genderP <- predict(mylogit, newdata = data3, type = "response")

newdata2 <- with(data2, data.frame(prs_ea_all = rep(seq(from = -4, to = 4, length.out = 100), ##2), gxeaALL = mean(gxeaALL), intyorn, gender = factor(rep(0:1, each = 100))))

Ошибка в data.frame (prs_ea_all = rep (seq (от = -4, до = 4, length.out = 100),: argumentsподразумевается различное количество строк: 200, 1, 1050

1 Ответ

0 голосов
/ 28 октября 2018

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

x <- 1:100
y <- 1:100
z <- 1:23
a <- 1:73

data.frame(x,y,z,a)

Ошибка в data.frame (x, y, z, a): аргументы подразумевают различное количество строк: 100, 23, 73

Теперь, глядя на ваш пример поближе, я вижу некоторые проблемы со следующими переменными:

1st) prs_ea_all

Здесь вы повторяете seq (от = -4 до = 4, length.out = 100) дважды, что создает вектор из 200 элементов

2nd) gxeaALL С этой переменной вы хотите получить среднее значение переменной, которая представляет собой вектор с одним числом

3-й) кажется, что вектор интиорн имеет длину 1050, проверьте ваши исходные данные для сертификации.

В итоге

Убедитесь, что все ваши векторы в вызове функции фрейма данных имеют одинаковый номерэлементов.Как в примере ниже:

x <- 1:100
y <- 1:100
z <- 1:100
a <- 1:100

data.frame(x,y,z,a)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...