0

長年のポリシーとして、現在のスコープに名前をインポートする (別名「汚染する」) ことは避け、代わりに、別のパッケージで定義されたアイテムを参照するときに完全修飾名を使用します。

以下のスクリプトは、R では修飾名を使用するだけでは不十分であることを示しています。

#!/usr/bin/env Rscript

set.seed(0)

x <- local({
         x0 <- matrix(rnbinom(80, size = 5, mu = 10), nrow = 20)
         `rownames<-`(rbind(0, c(0, 0, 2, 2), x0),
                      paste("Tag", 1:(nrow(x0) + 2), sep = "."))
     })

y <- edgeR::DGEList(counts = x,
                    group = rep(1:2, each = 2),
                    lib.size = 1001:1004)

## library(edgeR)

y[1, 1]

スクリプトは失敗します

Error in y[1, 1] : incorrect number of dimensions
Execution halted

スクリプトの唯一の罪はlibrary(edgeR)、失敗したステートメントの前のどこかに行が含まれていなかったことのようです。コメントアウトされた行のコメントを外すとエラーが消えるためです。

これはブードゥー教です。

現在のスコープを汚染せずにエラーを回避する方法はありlibrary(edgeR)ますか?

4

1 に答える 1