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.
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