2009-11-16 7 views
9

Ich arbeite mit einem kleinen Team von Analysten und Statistikern daran, was ein mittelgroßer R-Code sein wird. Sie sind schlaue Leute, aber sie sind nicht als Programmierer an sich ausgebildet oder erfahren. (Ich bin es.) Sie haben etwas R-Code geschrieben, aber damit unser Projekt erweiterbar, effizient und wartbar ist, muss es gut strukturiert und eher piratisch werden. Einer der besseren Wege zu lernen, ein besserer Programmierer zu sein, ist das Studium elegant vorhandenen Codes. Kann jemand einige Open-Source-Beispiele für R-Code vorschlagen (auf CRAN oder wo auch immer), von denen Sie denken, dass sie besonders klar, lehrreich und gute Beispiele sind? Funktionell ist gut, S3-Objekte sind OK, tiefe Magie ist schlecht.Was ist ein gutes Beispiel für wirklich sauberen und klaren [R] Code, für pädagogische Zwecke?

Antwort

6

Meine zwei Lieblingspakete können sowohl auf R-Forge durchsucht werden und sehr gut dokumentiert sind (obwohl sie für eine Einführung zu groß sein kann):

Ich denke, dass die Google style guide hat eine große Aufgabe, den Stil des Kernteam aufnehmen, obwohl Hadley has his own style guide die gelesen werden können, wenn man sich seine Pakete suchen. Sie können auf Github (and his homepage is full of useful content), insbesondere browse Hadley's packages:

Diese article on the R-Wiki is also a good read nach Möglichkeiten zu sehen, Code zu optimieren.

+0

Nun, ich schaute Caret und Zelig, und in den meisten Fällen sind sie überhaupt nicht gut kommentiert. Es sieht so aus, als ob ein Entwickler in Caret Kommentare mag, aber das ist es auch schon. Ich bin ziemlich vertraut mit den Eingeweiden von ggplot2, und obwohl es ein großartiges Paket zu verwenden ist, und der Code ist meist elegant und relativ gut kommentiert, verwendet es obskure Proto-Objekte und dynamische Erstellung von Funktionen eine Menge, so dass ich nicht berücksichtigen kann Es lehrte überhaupt. Die Optimierung über das hinaus, was aus der guten Codierung herausfällt, ist ein separates Problem. Schau dir Hadleys andere Pakete an ... – Harlan

+2

Von meinen Paketen - je aktueller, desto besser. Ich würde empfehlen 'plyr' und (sehr neu)' stringr'. Meiner Meinung nach sind sie größtenteils gut geschrieben und elegant. Die Qualität meines Codes hat sich wirklich verbessert, nachdem ich angefangen habe, anderen beizubringen, wie man guten Code schreibt! – hadley

2

Nicht streng verwandt, aber stellen Sie sicher, dass Sie sie so schnell wie möglich an die Verwendung von Quellcodeverwaltung (export, subversion, git, rcs usw.) gewöhnt sind. Das reduziert die Lernschmerzen.

+0

Ja, guter Rat. Sie wussten Bescheid und nutzten Git, bevor ich dem Team beitrat ... – Harlan

Verwandte Themen