2016-11-01 83 views
5

Skonfigurowałem i regularnie aktualizowałem mój pakiet R do GitHub po obszernej dokumentacji Hadleya dotyczącej Devtools, Roxygen2 itd. Na moim laptopie. Wczoraj postanowiłem zamiast tego użyć mojego głównego komputera i teraz chcę wprowadzić zmiany do GitHub. Mam następujący błąd po wprowadzeniu document():Dane nie wyeksportowane z przestrzeni nazw w R

Error: 'Adult_Females' is not an exported object from 'namespace:gbm.auto' 

Adult_Females to nazwa pierwszego pliku danych w/dane. Zgodnie z this (przewiń w dół do "Dane")

"pliki, które żyją w danych/nie korzystają ze zwykłego mechanizmu przestrzeni nazw i nie muszą być eksportowane."

Więc ... co jest facetem? W żaden sposób nie edytowałem Adult_Females, a edytowany przeze mnie skrypt R nie odnosi się do niego. Podejrzewam, że ten błąd wyświetli się dla wszystkich plików danych i tak się złożyło, że jest to pierwszy z nich, ale to jest przypuszczenie w tym momencie.

Z góry dziękuję. install_github("SimonDedman/gbm.auto"), jeśli chcesz rzucić okiem.

+1

Wygląda na to, że używasz 'gbm.auto :: Adult_Females' w kilku miejscach. Czy próbowałeś upuścić 'gbm.auto ::'? – nrussell

+0

Cześć, dziękuję. Tak w @przykładach w gbm.cons.R Mam "Adult_Females <- gbm.auto::Adult_Females"; będzie ładowanie danych dla użytkowników, jeśli nie określę "::", ponieważ dane nie powinny być jawnie eksportowane/nazwane? Nie jest to obszar, w którym moje rozumienie tego, jak wszystko github/roxygen/namespace/description pasuje do siebie, upada! –

+0

Nie jestem pozytywny, ale po prostu używając 'Adult_Females' powinien działać dobrze. '::' jest przeznaczony do użycia z eksportowanymi obiektami, więc uważam, że poprzedzanie '' gbm.auto :: 'jest przyczyną błędu. – nrussell

Odpowiedz

4

Napotkano podobny problem podczas pisania paczki R, która zawiera zestaw danych. Chyba musiałeś zapisać zestaw danych pod inną nazwą. Na przykład, można napisać:

devtools:::use_data(YourDataSetName, pkg = "Path_to_Pkg/data", internal=FALSE) 

ale w pliku data.R, określono nazwę zestawu danych na samym końcu inny niżYourDataSetName (załóżmy, że po instrukcje Hadley tutaj: http://r-pkgs.had.co.nz/data.html). Upewnij się, że obiekt danych zapisany w folderze "data" jest taki sam jak określony w pliku data.R.

1

dla obiektów danych, nazwy muszą być zgodne w czterech (4) miejscach, więc sprawdzić je wszystkie:

  1. nazwę pliku danych/foo.rda
  2. nazwa obiektu w danych/foo.rda złożyć
  3. nazwę R/foo.R plik
  4. łańcuch na końcu R/foo.R złożyć

wszystkie cztery elementy muszą pasować - i W tym przypadku "foo". Jeśli zmienisz nazwę plików foo.rda i foo.R, powiedz na bar.rda i bar.R, łatwo zapomnieć o zmianie nazwy obiektu w pliku .rda z "foo" na "bar". To zazwyczaj najłatwiejszy do załadowania pliku, zmiana nazwy obiektu, a następnie zapisz plik pod nową nazwą:

load('data/foo.rda') 
bar <- foo 
save(bar, file='data/bar.rda') 

Jeśli tego nie zrobisz, masz unhelpful błąd o obiekcie nie załadowanym z nazw. NIE musisz wyeksportować obiektów danych, więc zamiast tego upewnij się, że nazwy pasują do wszystkich miejsc.

+0

Dzięki. Re: 3 i 4: Nie mam moich indywidualnych plików danych jako plików .R w folderze/R, ale zamiast tego jako jeden plik, data.R, ze szczegółami 6 zestawów danych w folderze/data. Musiałem to zrobić w oparciu o instrukcje na stronie Hadley'a, czy to źle? Nazewnictwo tego zbioru danych jest poprawne w data.R –

+0

Myślę, że to też jest w porządku ... W tym przypadku domyślam się, że 3 nie jest konieczne, ale wiem, że 1 i 2 są, i przypuszczam, że 4 jest potrzebne tylko dla dokumentów. – 0mn1