長年のポリシーとして、現在のスコープに名前をインポートすることを避けています。 - 別のパッケージで定義されている項目を参照するときに、修飾された名前。現在のスコープの汚染を避ける方法( `library(...) ')
以下のスクリプトは、修飾された名前を使用する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
で失敗したスクリプトの唯一の罪は、エラーが1アンコメント場合はコメントアウトを消えることから、失敗したステートメントの前にラインlibrary(edgeR)
どこかに含ま持っていないように見えますライン。
これはvoodoo、imhoです。
library(edgeR)
で現在のスコープを汚染しないでエラーを回避する手段はありますか?
モジュールパッケージをご覧ください。 –
@ G.Grothendieck:提案してくれてありがとうございますが、私は 'modules'ウェブサイトをすばやく見てから、このパッケージがこの場合どのように役立つのかは分かりません。ちょっと凝っていただけますか? – kjo