To pytanie jest bardzo ściśle związane z: "How to organize large R programs?"
Należy rozważyć utworzenie pakietu R. Możesz użyć funkcji package.skeleton
, aby rozpocząć od podania zestawu plików R. Gorąco polecam też używanie pakietu roxygen
do udokumentowania pakietu na samym początku, ponieważ znacznie trudniej jest go wykonać po fakcie.
Przeczytaj "Writing R Extensions". Książka online "Statystyka z R" ma numer a section on this subject. Zobacz także Creating R Packages: A Tutorial autorstwa Friedricha Leisch'a. Wreszcie, jeśli jesteś w NY, przyjdź na nadchodzące spotkanie grupy use-R NY na "Authoring R Packages: a gentle introduction with examples".
Wystarczy powtarzać pewne sugestie dotyczące dobrych praktyk:
- Pakiet pozwala na użycie
R CMD check
co jest bardzo pomocne przy łapania błędów; osobno możesz spojrzeć na użycie pakietu codetools
.
- Pakiet zmusza również do wykonania minimalnej ilości dokumentacji, co w dłuższej perspektywie prowadzi do lepszych praktyk.
- Należy również rozważyć wykonanie testów jednostkowych (np. Z RUnit), jeśli chcesz, aby kod był solidny/łatwy w utrzymaniu.
- Należy rozważyć użycie przewodnika po stylach (np. Google Style Guide).
- Użyj systemu kontroli wersji od samego początku, a jeśli zamierzasz stworzyć kod open source, rozważ użycie github lub r-kuge.
Edit:
chodzi jak robią przyrostowych zmian bez odbudowy i instalacji pełnego pakietu: Uważam, że najłatwiej jest dokonać zmian w odpowiednich aktach, R, a następnie użyć polecenia source
załadować te zmiany. 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 pobierzesz lub załadujesz, zostaną użyte jako pierwsze (użyj polecenia search
, aby zobaczyć to). W ten sposób możesz mieć swój pakiet pod kontrolą i nadpisujesz zmiany podczas testowania ich w środowisku.
Można również użyć IDE, takiego jak StatET lub ESS. Sprawiają, że ładowanie pojedynczych linii lub funkcji z paczki R jest bardzo łatwe. StatET jest szczególnie dobrze zaprojektowany do obsługi pakietów w strukturze katalogowej.
Prawdopodobny duplikat: http://stackoverflow.com/questions/1266279/how-to-organize-large-r-programs – Shane