"分组变量不得包含纯数字项"

时间:2017-12-28 10:51:24

标签: r

我正在与群体进行分析,因此需要制作一个分组变量,我想要使用性别(0 =男性,1 =女性)。我最初做的是创建一个这个变量的向量(手动告诉我这样做),但后来我得到了一个错误:"分组变量不能包含纯数字项"。然后我用逻辑(TRUE / FALSE)转换了我的向量,但不知何故我仍然得到这个错误。

所以我的问题是,一般来说,当我收到此错误时,是否有人知道可能出现的问题?

下面附有我的数据集头部的代码:

structure(c(7, 8, 7, 5, 6, 6, 4.9, NA, 6.9, 5.1, 5.8, NA, NA, 
        NA, 7, 3, 7, NA, NA, NA, 6.7, 4.1, 5.9, NA, NA, NA, 5, 6, 7, 
        NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 8, NA, NA, NA, 6.2, 
        4.3, 6.3, NA, NA, NA, 7, 5, 7, NA, NA, NA, 6.5, NA, NA, NA, NA, 
        NA, 6, NA, 7, NA, NA, NA, NA, NA, 5, NA, NA, NA, NA, NA, 7, NA, 
        NA, NA, NA, NA, 6.1, NA, NA, NA, NA, NA, 7, NA, NA, NA, NA, NA, 
        NA, NA, 16, 0.001, 12, 11, 11, 0.001, 0.001, 0.001, 12, 12, 12, 
        0.001, 0.001, 0.001, 12, 12, 12, 0.001, 0.001, 0.001, 15, 12, 
        12, 0.001, 0.001, 0.001, 16, 0.001, 12, 0.001, 0.001, 0.001, 
        0.001, 0.001, 15, 0.001, 0.001, 0.001, 0.001, 0.001, 16, 0.001, 
        0, 1, 0, 0, 1, 0), .Dim = c(6L, 24L), .Dimnames = list(c("800009", 
                                                                 "800012", "800015", "800033", "800042", "800045"), c("gener_sat_T0", 
                                                                                                                      "sel_T0", "gener_sat_T1", "sel_T1", "gener_sat_T2", "sel_T2", 
                                                                                                                      "gener_sat_T3", "sel_T3", "gener_sat_T4", "sel_T4", "gener_sat_T5", 
                                                                                                                      "sel_T5", "gener_sat_T6", "sel_T6", "gener_sat_T7", "sel_T7", 
                                                                                                                      "dT1", "dT2", "dT3", "dT4", "dT5", "dT6", "dT7", "female")))

那么我想要做的就是安装一个CT模型(以前在非组数据上使用它并且工作正常)。

CTMODEL <- ctModel(n.latent = 2, n.manifest = 2, Tpoints = 8, 
                   manifestNames = c("gener_sat", "sel"), 
                   latentNames = c("gener_sat", "sel"), LAMBDA = diag(2))
fit_CTMODEL <- ctMultigroupFit(datawide = data_wide, groupings=female, ctmodelobj = CTMODEL)

非常感谢!

1 个答案:

答案 0 :(得分:0)

好的,我重新编写了你的​​计算,虽然你的代码不能直接重现,但我做了一些修改,现在它可以工作了:

# create the structure object (data_wide), and change it to remove the 
# grouping:

data_wide = structure(c(7, 8, 7, 5, 6, 6, 4.9, NA, 6.9, 5.1, 5.8, NA, NA, 
    NA, 7, 3, 7, NA, NA, NA, 6.7, 4.1, 5.9, NA, NA, NA, 5, 6, 7, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 8, NA, NA, NA, 6.2, 
    4.3, 6.3, NA, NA, NA, 7, 5, 7, NA, NA, NA, 6.5, NA, NA, NA, NA, 
    NA, 6, NA, 7, NA, NA, NA, NA, NA, 5, NA, NA, NA, NA, NA, 7, NA, 
    NA, NA, NA, NA, 6.1, NA, NA, NA, NA, NA, 7, NA, NA, NA, NA, NA, 
    NA, NA, 16, 0.001, 12, 11, 11, 0.001, 0.001, 0.001, 12, 12, 12, 
    0.001, 0.001, 0.001, 12, 12, 12, 0.001, 0.001, 0.001, 15, 12, 
    12, 0.001, 0.001, 0.001, 16, 0.001, 12, 0.001, 0.001, 0.001, 
    0.001, 0.001, 15, 0.001, 0.001, 0.001, 0.001, 0.001, 16, 0.001), .Dim = 
c(6L, 23L), 
    .Dimnames = list(c("800009", "800012", "800015", "800033", "800042", 
"800045"), 
                     c("gener_sat_T0",  "sel_T0", "gener_sat_T1", "sel_T1", 
"gener_sat_T2", 
                       "sel_T2", "gener_sat_T3", "sel_T3", "gener_sat_T4", 
"sel_T4", "gener_sat_T5", 
                       "sel_T5", "gener_sat_T6", "sel_T6", "gener_sat_T7", 
 "sel_T7", 
                       "dT1", "dT2", "dT3", "dT4", "dT5", "dT6", "dT7")))


CTMODEL <- ctModel(n.latent = 2, n.manifest = 2, Tpoints = 8, 
               manifestNames = c("gener_sat", "sel"), 
               latentNames = c("gener_sat", "sel"), LAMBDA = diag(2))
fem = c("f", "m", "f", "f", "m", "f") # grouping, which needs to be a 
# character vector

fit_CTMODEL <- ctMultigroupFit(dat = data_wide, groupings=fem, ctmodelobj = 
CTMODEL) # dat instead of datawide

所以最后它只是制作分组变量字符向量。

添加:代码运行但遇到各种错误:

Not all eigenvalues of Hessian are greater than 0
Fit attempt generated errors
Retry limit reached

我想这是因为该模型并将解决方案留给您:)