2014-11-15 51 views
0

我正在尝试使用kmlCov()在kmlcov包中检查某些数据的集群。在获得结果后,我不太清楚如何从S4对象中提取信息。我认为这种复杂化是由于存储信息的S4对象实际上在另一个S4对象内,我不知道如何处理它。从另一个S4对象中的S4对象中提取信息R

从STR(对象名)的部分的输出如下所示:

Formal class 'KmlCovList' [package "kmlcov"] with 1 slots 
    [email protected] list_part:List of 2 
    .. ..$ :Formal class 'GlmCluster' [package "kmlcov"] with 16 slots 
    .. .. .. [email protected] formula  :Class 'formula' length 3 Total ~ Prop 
    .. .. .. .. .. ..- attr(*, ".Environment")=<environment: 0x11aed66e8> 
    .. .. .. [email protected] nClust  : num 2 
    .. .. .. [email protected] ident   : chr "CaseID" 
    .. .. .. [email protected] timeVar  : chr "time" 
    .. .. .. [email protected] time   : int [1:8287] 0 1 2 3 4 5 6 7 0 1 ... 
    .. .. .. [email protected] effectVar  : chr "" 
    .. .. .. [email protected] effect  : NULL 
    .. .. .. [email protected] model.glm  :List of 30 
    .. .. .. .. ..$ coefficients  : Named num [1:4] 0.988 2.028 0.948 6.317 
    .. .. .. .. .. ..- attr(*, "names")= chr [1:4] "Ga" "Gb" "Ga:Prop"  "Gb:Prop" 
    .. .. .. .. ..$ residuals  : Named num [1:8287] 4.064 0.634 -1.215 -1.936 -1.936 ... 
    .. .. .. .. .. ..- attr(*, "names")= chr [1:8287] "1" "2" "3" "4" ... 
    .. .. .. .. ..$ fitted.values : Named num [1:8287] 1.94 1.37 1.22 1.94 1.94 ... 
    .. .. .. .. .. ..- attr(*, "names")= chr [1:8287] "1" "2" "3" "4" ... 

例如,如果I型

[email protected]_part 

我得到的存储在所述对象的一切。我试过格式,如

[email protected][email protected] 
[email protected]_part$formula 

并没有得到我所需要的。我想得到的是存储在插槽中的特定信息。

任何建议,将不胜感激。谢谢!

回答

0

?kmlCov

library(kmlcov) 
data(artifdata) 
res <- kmlCov(formula = Y ~ clust(time + time2), 
    data = artifdata, ident = 'id',timeVar = 'time', effectVar = 'treatment', 
     nClust = 2:3, nRedraw = 2) 

lapply([email protected]_part, function(x) 
     lapply(x,function(y) [email protected])) 

#[[1]] 
#[[1]][[1]] 
#Y ~ time + time2 
#<environment: 0x17a01718> 

#[[1]][[2]] 
#Y ~ time + time2 
#<environment: 0x17928f80> 


#[[2]] 
#[[2]][[1]] 
#Y ~ time + time2 
#<environment: 0x26eed80> 

#[[2]][[2]] 
#Y ~ time + time2 
#<environment: 0x1752dc70> 

sapply([email protected]_part, function(x) sapply(x,function(y) [email protected])) 
#  [,1] [,2] 
#[1,] 2 3 
#[2,] 2 3 

lapply([email protected]_part, function(x) 
      sapply(x,function(y) coef([email protected])))