作爲長期的政策,我避免將名稱導入(又名「污染」)當前範圍,而是完全使用引用不同軟件包中定義的項目時使用限定名稱。如何避免污染當前範圍(使用`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
腳本的唯一的罪過似乎沒有列入該行library(edgeR)
某處失敗的語句之前,因爲錯誤消失,如果一個非註釋被註釋掉線。
這是伏都教,imho。
有沒有辦法避免錯誤而不污染當前範圍library(edgeR)
?
看看模塊包。 –
@ G.Grothendieck:謝謝你的建議,但我承認,在瀏覽'modules'網站後,我不清楚這個軟件包在這種情況下會有什麼幫助。你介意詳細介紹一下嗎? – kjo