我在努力在函數內部分配名稱空間變量。考慮使用CRAN包「QCC」這個例子:qcc()
生成的曲線圖,但該 情節的顯示選項由qcc.options()
控制。在函數內部分配名稱空間變量
在全球工作時,一切都很好:
library(qcc)
qcc.options(bg.margin="red") # sets margin background colour, i.e.
# qcc:::.qcc.options$bg.margin is "red"
qcc(rnorm(100), type = "xbar.one") # generates a plot with red margin
但在函數的局部環境中工作時,qcc
和qcc.options
似乎使用的名稱空間是不同的:
foo <- function(x){
qcc.options(bg.margin=x)
qcc(rnorm(100), type = "xbar.one")
}
foo("green") # generates a default plot with grey margins
非常感謝Thomas!我知道發生了什麼,我只是不知道如何正確分配變量。 'assignInNamespace'完成這項工作就好了。 – albifrons
@ user2853399聽起來不錯。不過,我肯定會提及它給包維護者,因爲你不應該做這一步(因爲'qcc.options'實際上並不明顯)。 – Thomas
剛剛收到答案後,我給維護人員發送了一封電子郵件,並附有指向此頁面的鏈接:)再次感謝您! – albifrons