错误:“找不到函数”长度“

时间:2016-01-12 11:33:19

标签: r lme4

跑步时:

 reg_model = glmer(modeling1 ~ pTOT_VIOPT_CT + (1|STUDY_CODE_ALIAS),
                  data=data_CACZ, family=binomial)

我收到错误:

Error in .fixupDimnames(.Object@Dimnames) : 
  could not find function "lengths"

不确定可能的原因是什么。

仅供参考:我的价格低于sessionInfo()

R version 3.0.2 (2013-09-25)
Platform: i386-w64-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] Rcpp_0.11.5  lme4_1.1-10  Matrix_1.2-3 car_2.0-21   MASS_7.3-29 

loaded via a namespace (and not attached):
[1] grid_3.0.2      lattice_0.20-29 minqa_1.2.4     nlme_3.1-118    nloptr_1.0.4    nnet_7.3-7      splines_3.0.2   tools_3.0.2   

1 个答案:

答案 0 :(得分:5)

(来自' Matrix'的维护者):这确实很奇怪, 但与@nicola建议的不同。

  1. 可以更新推荐的软件包,例如Matrix,而不更新R.这些确实只有一个功能
  2. Matrix 1.2-3确实是当前版本的Matrix on CRAN,这很好。
  3. 但是,自Matrix 1.2-2以来,Matrix / R / zzz.R中有以下代码:

    if(getRversion() >= "3.2.0") {
        ......
    } else {
        ......
        lengths <- function (x, use.names = TRUE) vapply(x, length, 1L, USE.NAMES = use.names)
    }
    

    但是,当Matrix包使用正确的R版本从构建 时,该代码才能正常工作,例如在3.2.0之前的版本为R的情况下。 这个(正确构建)适用于除Windows之外的所有平台(按选择而破坏一个)。

    如果您真的不想(或者不能轻易)升级您的R版本, 你还有两个选择:

    1. 将您的Matrix版本降级为R版本附带的版本。由于您可能已安装新的Matrix替换旧版本,因此您需要获取并替换较新版本的Matrix。但是,我想你也必须降级lme4,最后你会遭受太多损失。
    2. 更安全且原则上正确:安装&#39; Rtools&#39; Windows的集合(你需要一个与你的R版本相匹配的那个!) 包括C编译器等,直到以下工作正常

      install.packages("Matrix", type = "source")
      
    3. 这样做的工作可能是值得的。您将能够从其源代码安装其他R软件包,这无论如何都非常有用 (如果我不得不使用Windows,我不想没有这种可能性。)