如何纠正“nullmodel中的错误(comm,方法):在素食包中找不到函数”list2env“

时间:2011-10-03 22:10:13

标签: r

我正忙着探索R的包 vegan ,用它来计算社区矩阵和空模型的嵌套性。我对使用permat函数以及Oecosimu特别感兴趣。

然而,在运行我的程序时,我获得了以下错误:

  

nullmodel(comm,method)出错:找不到函数“list2env”   nullmodel(m,ALGO)出错:找不到函数“list2env”

然后,我甚至运行了一个如何使用R帮助函数给出的这些函数的示例(如下所示),甚至这些示例也给出了相同的错误。我想为了使用这些功能而导入其他东西,或者我该如何解决这个问题呢?

示例:

m <- matrix(c(
   1,3,2,0,3,1,
   0,2,1,0,2,1,
   0,0,1,2,0,3,
   0,0,0,1,4,3
   ), 4, 6, byrow=TRUE)

x1 <- permatswap(m, "quasiswap")

summary(x1)

x2 <- permatfull(m)

summary(x2)

x3 <- permatfull(m, "none", mtype="prab")

x3$orig  

summary(x3)

x4 <- permatfull(m, strata=c(1,1,2,2))

summary(x4)

3 个答案:

答案 0 :(得分:2)

从技术上讲,这是R-Forge上Vegan的开发版本中的一个错误。我们未能在DESCRIPTION中声明对R版本&gt; = 2.12的依赖。我已经检查了源代码树的相关更改以解决此问题,但是在R-Forge重建tarball和二进制文件之前需要一天左右。

那就是说,您应该将R更新为更近期的内容。或者使用CRAN上的Vegan 2.0-x中提供的那些功能的版本。

答案 1 :(得分:1)

list2env是R base的一部分,这意味着它附带了发行版,而不是附加软件包。因此,如果您没有它,您可能要么运行旧版本的R,要么安装中断。这个例子对我很好,R 2.12.1和素食主义者2.1-0。

答案 2 :(得分:1)

您的代码适用于我而没有错误消息

您错误的最可能原因是您使用旧版Rveganpermute

R news for changes

  

版本变更2.12.0:新功能:

o New list2env() utility function as an inverse of
  as.list(<environment>) and for fast multi-assign() to existing
  environment.  as.environment() is now generic and uses list2env()
  as list method.
     

R版本的变化2.12.1:BUG FIXES:

o When list2env() created an environment it was missing a PROTECT
  call and so was vulnerable to garbage collection.
     

版本2.13.0中的变化:新功能:

o list2env(envir = NULL) defaults to hashing (with a suitably sized
  environment) for lists of more than 100 elements.

因此,请更新您的R版本和软件包,然后重试。