2013-02-20 6 views
26

W języku R, co to znaczy, że pakiet ma być "załadowany przez przestrzeń nazw (i niezainstalowany)" w sessionInfo()?W R, co znaczy "załadowany przez przestrzeń nazw (i nie dołączony)"?

Edit:

Na przykład:

> sessionInfo() 

R version 2.15.2 (2012-10-26) 
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit) 

locale: 
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

---->>>> loaded via a namespace (and not attached): 
---->>>> [1] tools_2.15.2 
+0

Jej te pakiety, które są 'suggested' przez inne pakiety, i nie są załadowany (aby uzyskać do niego dostęp bezpośrednio przez użytkownika, powinienem dodać). – Arun

Odpowiedz

15

Oznacza to pakiet (w tym przypadku R) można uzyskać dostęp do funkcji pakietu/obiektów, ale użytkownik nie może bez wyraźnego ładowania narzędzia pakiet, w którym jako statystyki, grafika itp. są załadowane i gotowe do pracy dla użytkownika.

Oto przykład:

sessionInfo() 
file_ext("file.com") 
tools::file_ext("file.com") 
sessionInfo() 
14

Kiedy ktoś ocenia library(foo), R najpierw ładuje foo pakietów w pamięci, a następnie dołącza pakiet do ścieżki search(). Inne operacje, takie jak loadNamespace("foo") lub foo::fun, lub gdy strona trzecia wskazuje, że importuje symbole z foo, ładuje pakiet, ale nie dołącza go do ścieżki wyszukiwania. Ponieważ R jest językiem dynamicznym, każde wywołanie funkcji wymaga przejścia przez dostępne symbole w celu znalezienia pierwszego, który pasuje. Jest skuteczny i pozwala uniknąć niepotrzebnych konfliktów nazw, rozdzielając operacje dołączania i ładowania, a tym samym ograniczając liczbę symboli do wyszukania.

W powyższym przykładzie pakiet narzędzi został załadowany, ale nie (jeszcze) dołączony. Po wpisaniu symbolu w wierszu polecenia R, R wyszukuje najpierw symbol w globalnej przestrzeni nazw (pierwszy element zwracany przez search() i jeśli nie zostanie znaleziony w kolejnych elementach search(). Ponieważ narzędzia nie są dołączone, symbole w narzędzia nie są rozwiązane.

> file_ext 
Error: object 'file_ext' not found 

Niemniej jednak, jeden ma dostęp do nich z tools::file_ext, czy narzędzia znajduje się na ścieżce wyszukiwania, czy nie.

+0

Czy istnieje różnica między załadowaną przestrzenią nazw a rozładowaną przestrzenią nazw, ponieważ oba mogą wywoływać funkcję za pomocą jawna nazwa_pakietu: funkcja – cloudscomputes