Hi: When I call str() on an mlogit object, I seem to get warnings. This code is from an example provided in the mlogit documentation: library(mlogit) data("Train", package="mlogit") tr<-mlogit.data(Train, shape="wide", choice="choice", varying=4:11, sep="", alt.levels=c(1,2), id="id") ml.train<-mlogit(choice~price+time+change+comfort| -1, tr) str(ml.train) List of 12 $ coefficients : atomic [1:4] -0.00148 -0.02868 -0.32634 -0.94573 ..- attr(*, "fixed")= Named logi [1:4] FALSE FALSE FALSE FALSE .. ..- attr(*, "names")= chr [1:4] "price" "time" "change" "comfort" $ logLik :Class 'logLik' : -1724 (df=4) $ gradient : Named num [1:4] -3.94e-09 -1.40e-11 6.15e-13 -6.11e-13 ..- attr(*, "names")= chr [1:4] "price" "time" "change" "comfort" $ gradi : num [1:2929, 1:4] -136 -281 -309 -139 448 ... ..- attr(*, "dimnames")=List of 2 .. ..$ : chr [1:2929] "1.1" "2.1" "3.1" "4.1" ... .. ..$ : chr [1:4] "price" "time" "change" "comfort" $ hessian : num [1:4, 1:4] -2.75e+08 2.48e+06 5.10e+04 9.95e+04 2.48e+06 ... ..- attr(*, "dimnames")=List of 2 .. ..$ : chr [1:4] "price" "time" "change" "comfort" .. ..$ : chr [1:4] "price" "time" "change" "comfort" $ est.stat :List of 5 ..$ elaps.time:Class 'proc_time' Named num [1:5] 0.12 0 0.12 0 0 .. .. ..- attr(*, "names")= chr [1:5] "user.self" "sys.self" "elapsed" "user.child" ... ..$ nb.iter : num 5 ..$ eps : num [1, 1] 0.00014 ..$ method : chr "nr" ..$ code : num 2 ..- attr(*, "class")= chr "est.stat" $ fitted.values: num [1:2929, 1:2] 0.915 0.649 0.807 0.174 0.56 ... ..- attr(*, "dimnames")=List of 2 .. ..$ : NULL .. ..$ : chr [1:2] "X1" "X2" $ residuals : num [1:2929, 1:2] 0.0851 0.3512 0.1932 -0.1737 -0.5602 ... ..- attr(*, "dimnames")=List of 2 .. ..$ : chr [1:2929] "1.1" "2.1" "3.1" "4.1" ... .. ..$ : chr [1:2] "X1" "X2" $ model :Classes ?mlogit.data? and 'data.frame': 5858 obs. of 5 variables: ..$ choice : logi [1:5858] TRUE FALSE TRUE FALSE TRUE FALSE ... ..$ price : int [1:5858] 2400 4000 2400 3200 2400 4000 4000 3200 2400 3200 ... ..$ time : int [1:5858] 150 150 150 130 115 115 130 150 150 150 ... ..$ change : int [1:5858] 0 0 0 0 0 0 0 0 0 0 ... ..$ comfort: int [1:5858] 1 1 1 1 1 0 1 0 1 0 ... ..- attr(*, "terms")=Classes 'terms', 'formula' length 3 choice ~ price + time + change + comfort + -1 .. .. ..- attr(*, "variables")= language list(choice, price, time, change, comfort) .. .. ..- attr(*, "factors")= int [1:5, 1:4] 0 1 0 0 0 0 0 1 0 0 ... .. .. .. ..- attr(*, "dimnames")=List of 2 .. .. .. .. ..$ : chr [1:5] "choice" "price" "time" "change" ... .. .. .. .. ..$ : chr [1:4] "price" "time" "change" "comfort" .. .. ..- attr(*, "term.labels")= chr [1:4] "price" "time" "change" "comfort" .. .. ..- attr(*, "order")= int [1:4] 1 1 1 1 .. .. ..- attr(*, "intercept")= int 0 .. .. ..- attr(*, "response")= int 1 .. .. ..- attr(*, ".Environment")=<environment: 0x187ef68> .. .. ..- attr(*, "predvars")= language list(choice, price, time, change, comfort) .. .. ..- attr(*, "dataClasses")= Named chr [1:5] "logical" "numeric" "numeric" "numeric" ... .. .. .. ..- attr(*, "names")= chr [1:5] "choice" "price" "time" "change" ... ..- attr(*, "index")='data.frame': 5858 obs. of 3 variables: .. ..$ chid: Factor w/ 2929 levels "1","2","3","4",..: 1 1 2 2 3 3 4 4 5 5 ... .. ..$ alt : Factor w/ 2 levels "1","2": 1 2 1 2 1 2 1 2 1 2 ... .. ..$ id : Factor w/ 235 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 1 ... $ freq : 'table' int [1:2(1d)] 1474 1455 ..- attr(*, "dimnames")=List of 1 .. ..$ : chr [1:2] "1" "2" $ formula :Classes 'mFormula', 'Formula', 'formula' length 3 choice ~ price + time + change + comfort | -1 .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv> .. ..- attr(*, "lhs")=List of 1 .. .. ..$ : symbol choice .. ..- attr(*, "rhs")=List of 2 .. .. ..$ : language price + time + change + comfort .. .. ..$ : language -1 $ call : language mlogit(formula = choice ~ price + time + change + comfort | -1, data = tr, method = "nr", print.level = 0) - attr(*, "class")= chr "mlogit" Warning messages: 1: In if (is.na(le)) " __no length(.)__ " else if (give.length) { : the condition has length > 1 and only the first element will be used 2: In if (le > 0) P0("[1:", paste(le), "]") else "(0)" : the condition has length > 1 and only the first element will be used I am surprised that I'm getting warnings. Am I doing something wrong here, or is the mlogit object misformed in some way, or is there a problem with str()? I don't think the str() is specific to mlogit, since if I do utils:::str.default(ml.train) I get the same warnings. Thanks. Jen sessionInfo() R version 2.14.0 (2011-10-31) Platform: x86_64-unknown-linux-gnu (64-bit) locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=C LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] mlogit_0.2-1 maxLik_1.0-2 miscTools_0.6-10 lmtest_0.9-29 [5] zoo_1.7-5 statmod_1.4.13 Formula_1.0-1 loaded via a namespace (and not attached): [1] grid_2.14.0 lattice_0.20-0 sandwich_2.2-8 tools_2.14.0