我是新來的與R構建包,我開始做一個包,它結合了我編寫並經常獨立加載的一些函數。在這些函數中,有一個重載的+運算符用於連接字符串。它只是:構建包與重載運算符
`+` = function(x,y) {
if(is.character(x) | is.character(y)) {
return(paste(x , y, sep=""))
} else {
.Primitive("+")(x,y)
}
}
我在Rstudio中構建包,編譯包,我可以很好地加載它。但是當我加載它時,包中缺少+運算符。我錯過了什麼?
> sessionInfo()
R version 3.3.2 (2016-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] grid stats graphics grDevices utils datasets methods base
other attached packages:
[1] TBKUseful_0.1.0
loaded via a namespace (and not attached):
[1] tools_3.3.2 withr_1.0.2 memoise_1.0.0 digest_0.6.12 devtools_1.12.0
NAMESPACE文件的內容是什麼? (至少從性能的角度來說,重載'+'是一個糟糕的主意。) – Roland
你導出了這個函數嗎? – Axeman
嗨, @Roland我的NAMESPACE文件只有:exportPattern(「^ [[:alpha:]] +」) – Courvoisier