Organizowanie Kodu Źródłowego R

Wszystkie,

Zaczynam pisać zorientowany obiektowo kod R po raz pierwszy i przewiduję posiadanie wielu plików R z zależnościami pomiędzy nimi. Jestem nowy w R i jeszcze nie napisał nic poza jednym ogromny skrypt do testowania pomysłów. Czy istnieją zasoby online, które dają wskazówki, jak należy organizować kod? Brakuje mi opisów jak budować pakiety, nie znajduję takich wskazówek. W tym momencie chcę tylko uporządkować kod w taki sposób, aby wczytywanie i interakcja ze zbiorem procedur tak proste, jak to możliwe.

Doceniam wszelkie wskazówki, które możesz dostarczyć.

Chris

 46
r
Author: Chris, 2010-02-18

2 answers

To pytanie jest bardzo ściśle związane z: "Jak zorganizować duże programy R?"

Powinieneś rozważyć utworzenie pakietu R. Możesz użyć funkcji package.skeleton, aby rozpocząć od podanego zestawu plików R. Zdecydowanie polecam również użycie roxygen do udokumentowania pakietu na początku, ponieważ jest to znacznie trudniejsze do zrobienia po fakcie.

Czytaj "Pisanie Rozszerzeń R". Internetowa książka "Statystyka z R" ma sekcję na ten temat . Zobacz także tworzenie pakietów R: samouczek autorstwa Friedricha Leischa. Na koniec, jeśli jesteś w Nowym Jorku, przyjdź na najbliższe spotkanie grupy NY use - r na "Authoring R Packages: a gentle introduction with examples".

Tylko odświeżyć kilka sugestii na temat dobrych praktyk:

  • pakiet pozwala na użycie R CMD check, co jest bardzo pomocne w wychwytywaniu błędów; osobno można przyjrzeć się użyciu pakietu codetools.
  • pakiet zmusza również do minimalna ilość dokumentacji, która prowadzi do lepszych praktyk w dłuższej perspektywie.
  • powinieneś również rozważyć wykonanie testów jednostkowych (np. z RUnit), jeśli chcesz, aby Twój kod był solidny / możliwy do utrzymania.
  • powinieneś rozważyć użycie przewodnika po stylach (np. Google Style Guide ).
  • Użyj systemu kontroli wersji od samego początku, a jeśli chcesz, aby Twój kod był otwarty, rozważ użycie github lub r-forge.

Edit:

Jeśli chodzi o sposób wprowadzania przyrostowych zmian bez przebudowy i instalowania pełnego pakietu: uważam, że najprostszą rzeczą do zrobienia jest dokonanie zmian w odpowiednim pliku R, a następnie użycie polecenia source do załadowania tych zmian. Po załadowaniu biblioteki do sesji R, zawsze będzie ona niższa w środowisku (i niższa w priorytecie )niż.GlobalEnv, więc wszelkie zmiany, które bezpośrednio wczytywasz lub wczytywasz, zostaną użyte jako pierwsze (użyj search polecenie aby to zobaczyć). W ten sposób możesz mieć swój pakiet bazowy i nadpisywać zmiany podczas testowania ich w środowisku.

Alternatywnie możesz użyć IDE, takiego jak StatET lub ESS. Ułatwiają one Ładowanie poszczególnych linii lub funkcji z pakietu R. StatET jest szczególnie dobrze zaprojektowany do zarządzania pakietami w strukturze podobnej do katalogów.

 42
Author: Shane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:15

Jest to z korzyścią dla innych, którzy są kierowani do tego postu po ich poszukiwaniu. Ja też stanąłem w obliczu dokładnie tego samego scenariusza i nie znalazłem żadnego źródła, które wyjaśniałoby to wyraźnie. Oto moja próba wprowadzenia rozwiązania w kilku prostych krokach:
1) Utwórz nowy katalog projektu
2) Utwórz pakiet za pośrednictwem R studio (ten sam proces jak powyżej)
3) trzymaj oba w tym samym miejscu(aby uniknąć nieporozumień).
4) Zainstaluj i załaduj Pakiety: devtools oraz roxygen2.
5) Użyj funkcji load_all().

I jesteś skończony.

 0
Author: Hari Narayan Singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-25 21:14:08