【问题标题】:Error in limma - lmFit - chol2inv: 'x' must be a square numeric matrixlimma 中的错误 - lmFit - chol2inv:'x' 必须是平方数字矩阵
【发布时间】:2016-08-08 06:18:52
【问题描述】:

我找不到这个问题的答案,所以我发布解决方案以防其他人有同样的问题。

使用 Bioconductor 的 limma 包,我遇到了以下错误:

> fit <- try(lmFit(matrix, design))
Error in chol2inv(fit$qr$qr, size = fit$qr$rank) : 
  'x' must be a square numeric matrix

不是一个很有帮助的错误消息,但问题很简单。您的“矩阵”的行名不能有任何重复。检查这个

any(duplicated(rownames(matrix)))

并在必要时重命名行。

【问题讨论】:

  • 这是一个很好的建议,但是行名重复检查并不能解决我遇到的非常相似的错误。
  • @DirtStats 如果您需要有关问题的帮助,您应该提供错误消息和可重现的代码 sn-p 以便其他人可以帮助您!
  • 谢谢@sssheridan。我用类似的错误解决了我的问题。我只是发布该评论,以便其他人知道上述错误也可能有其他来源。

标签: r bioconductor


【解决方案1】:

“矩阵”的行名不能有任何重复。检查这个

any(duplicated(rownames(matrix)))

并在必要时重命名行。

【讨论】:

    【解决方案2】:

    limma 包lmFit() 函数确实对基本@9​​87654322@ 函数进行了多次调用。

    在我的 Windows R3.2.5 环境中更新了一些包之后,在我将矩阵对象传递给 lmFit() 函数时发生了类似的错误。安装 R 版本 3.3.1(再次在 Windows 操作系统下)确实解决了问题:将矩阵对象传递给 lmFit()(Limma 3.26.9)确实按预期返回了 MArrayLM 对象,没有来自 chol2inv 的“抱怨”功能。

    升级到 R 3.3.1“头发中的虫子”有望解决其他 lmFit() 问题。

    【讨论】:

      猜你喜欢
      • 2019-01-08
      • 2018-10-10
      • 2021-12-29
      • 1970-01-01
      • 1970-01-01
      • 2018-12-04
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      相关资源
      最近更新 更多