2012-07-27 20 views
7

Olası Çoğalt: İki paket varsa
Masked functions in R
R: Masked Functions
function naming conflictsİki fonksiyonları

: A ve B Say adlı işlevi yoktur A içinde funfun ve B de funfun adlı bir işlev var. A ve B'yi yüklediğimde, ilk funfun'u nasıl kullanırım?

require(A) 
require(B) 

ben bunu nasıl yazabilirim, A funfun kullanmak istiyorsanız?

+1

Bazı çiftler yakınlarda: http://stackoverflow.com/questions/2842120/masked-functions-in-r, http://stackoverflow.com/questions/4879377/r-masked- işlevler, http://stackoverflow.com/questions/9337716/how-do-i-use-functions-in-one-r-package-masked-by-another-package – Andrie

cevap

10

Sen explictily böyle bir paket ve fonksiyon kombinasyonuna başvurabilirsiniz: olağandışı durumlarda

A::funfun 
B::funfun 

, sen ad alanında dışa aktarılmaz işlevler için başvuran gerekebilir, bu durumda size içinde

A:::funfun 
B:::funfun 

(Ama bu olağandışı olurdu ve olmayan ihraç fonksiyonları paket API parçası değildir, çünkü bu işlevler yedekleri uyarmadan değişebilir: kullanmak gerekir bir paketin eşit sürümleri.)

+2

İşlev dışa aktarılıyorsa, yalnızca '::' kullanın. –

+3

+1 Kesinlikle, '::' 'paket ad alanında dışa aktarılmayan işlevlere erişim sağlar - bu çoğu kullanıcının yapması gereken bir şey değildir. Bence daha uygun olduğunu düşündüğümden '' 'Ben de cevabı düzenledim. – Andrie

İlgili konular