我正在使用 R 来模拟纵向数据。我正在尝试使用 postprob 函数来获取潜在类的后验概率,然后使用它们将每个观察值分配给一个类。但是,当我尝试这样做时,出现以下错误:
"Error in $<-.data.frame(tmp, groups, value = c(1L, 1L, 1L, 1L, 1L, : replacement has 39964 rows, data has 40000".
关于如何解决这个问题有什么建议吗?
代码如下:
#install.packages("lcmm")
#devtools::install_github("hlennon/LCTMtools")
library(lcmm)
library(LCTMtools)
data( bmi_long, package = "LCTMtools" )
data <- data.frame(bmi_long)
data$id <- as.numeric(data$id)
data$x <-data$age
data$y<-as.numeric(data$bmi)
data <-subset(data, select=c("id", "x", "y"))
m1 <- lcmm(fixed=y ~ x, subject = 'id', data = data)
summary(m1)
postprob(m1)
data$id <- as.numeric(data$id)
groups <- as.data.frame(m1$pprob[,1:2])
data$groups <- factor(groups$class[sapply(data$id, function(x) which(groups$id==x))])