使用 R 中的 gamlss 包计算列线图和 z 分数
Computing nomograms and z-scores with the gamlss package in R
我目前正在尝试为心血管研究项目生成列线图和 z 分数。
但是,我对 gamlss 包有疑问,特别是 centiles.pred() 函数。
例如,如果我 运行 下面的代码,我会陷入错误:
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
如何克服这个错误?
问题出在数据框的标签上。我曾经在使用标签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
我目前正在尝试为心血管研究项目生成列线图和 z 分数。
但是,我对 gamlss 包有疑问,特别是 centiles.pred() 函数。
例如,如果我 运行 下面的代码,我会陷入错误:
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
如何克服这个错误?
问题出在数据框的标签上。我曾经在使用标签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