当前位置:  开发笔记 > 开发工具 > 正文

错误:"找不到函数"长度"

如何解决《错误:"找不到函数"长度"》经验,为你挑选了1个好方法。

在跑步的时候:

 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   

Martin Mächl.. 5

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

    可以在不更新R的情况下更新推荐的软件包,例如Matrix.这确实是这些软件包的一个特性.

    Matrix 1.2-3确实是Matrix on CRAN的当前版本,这很好.

但是,从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)
}

但是,当使用正确版本的R从源构建 Matrix包时,该代码仅适用于您,即在您的情况下使用3.2.0之前的R版本.这个(正确构建)适用于除Windows之外的所有平台(由选择之一打破).

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

    将您的Matrix版本降级为您的R版本附带的版本.由于您可能已经安装了新的Matrix替换旧版本,您需要获取并替换较新版本的Matrix.但是,我想你也必须降级lme4,最后你会遭受太多损失.

    更安全且原则上正确:为Windows安装'Rtools'集合(您需要与您的R版本匹配的集合!),包括C编译器等,直到以下工作正常

    install.packages("Matrix", type = "source")
    

这样做的工作可能是值得的.你将能够从他们的源码安装其他R包,这是非常有用的(如果我不得不使用Windows,我不希望没有这种可能性).



1> Martin Mächl..:

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

    可以在不更新R的情况下更新推荐的软件包,例如Matrix.这确实是这些软件包的一个特性.

    Matrix 1.2-3确实是Matrix on CRAN的当前版本,这很好.

但是,从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)
}

但是,当使用正确版本的R从源构建 Matrix包时,该代码仅适用于您,即在您的情况下使用3.2.0之前的R版本.这个(正确构建)适用于除Windows之外的所有平台(由选择之一打破).

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

    将您的Matrix版本降级为您的R版本附带的版本.由于您可能已经安装了新的Matrix替换旧版本,您需要获取并替换较新版本的Matrix.但是,我想你也必须降级lme4,最后你会遭受太多损失.

    更安全且原则上正确:为Windows安装'Rtools'集合(您需要与您的R版本匹配的集合!),包括C编译器等,直到以下工作正常

    install.packages("Matrix", type = "source")
    

这样做的工作可能是值得的.你将能够从他们的源码安装其他R包,这是非常有用的(如果我不得不使用Windows,我不希望没有这种可能性).

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有