Вычисление номограмм и z-показателей с пакетом gamlss в R - PullRequest
0 голосов
/ 14 апреля 2020

В настоящее время я пытаюсь сгенерировать номограммы и z-оценки для проекта исследования сердечно-сосудистой системы.

Однако у меня есть проблема с пакетом gamlss , в частности с centiles.pred () function.

Например, если я запускаю следующий код, я застреваю в ошибке:

library(gamlss)
x <- c(6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 7, 8, 8, 8)
y <- c(372, 375, 340, 370, 386, 396, 398, 357, 360, 360, 362, 415, 365, 366, 368)
data <- data.frame(x, y)
m1 <- gamlss(y~pb(x),sigma.fo=~pb(x), data=data, family=BCT)
centiles(m1, xvar = data$x)
newx <- seq(6, 8, 0.5)
mat <- centiles.pred(m1, xname = "x", xvalues = newx)

Когда я запускаю последнюю строку, я получить следующее сообщение:

Error in data.frame(data, source = namelist) :
arguments imply differing number of rows: 5, 6

Как я могу преодолеть эту ошибку?

1 Ответ

1 голос
/ 16 апреля 2020

Проблема заключается в маркировке кадра данных. Однажды у меня была похожая ошибка, когда я использовал метку table . Я изменяю data на data_ , и это работает. :)

library(gamlss)
x <- c(6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 7, 8, 8, 8)
y <- c(372, 375, 340, 370, 386, 396, 398, 357, 360, 360, 362, 415, 365, 366, 368)
data_ <- data.frame(x, y)
m1 <- gamlss(y~pb(x),sigma.fo=~pb(x), data=data_, family=BCT)
centiles(m1, xvar = data_$x)
newx <- seq(6, 8, 0.5)
mat <- centiles.pred(m1, xname = "x", xvalues = newx)
mat
...