Pregunta

Soy nuevo en R y teniendo dificultades para unir las piezas de información de diversas fuentes en línea relacionados con lo que se considera una práctica "buena" con la escritura de código R. He leído guías básicas pero he estado teniendo dificultades para encontrar información que es, sin duda hasta la fecha.

  1. ¿Cuáles son algunos ejemplos de clases bien escritos documentados / S3?
  2. ¿Qué hay de las clases correspondientes S4?
  3. ¿Qué hacen las convenciones que se utiliza cuando comentan clases .R / funciones? ¿Usted pone todos sus comentarios en ambos archivos y archivos .rd .R? Es la sincronización de estos archivos tedioso?
¿Fue útil?

Solución

Si se debe utilizar S3, S4 o un paquete en absoluto es sobre todo una cuestión de estilo (como dice Dirk), pero se recomienda usar uno de esos si usted quiere tener un objeto muy bien estructurado (al igual que lo haría en cualquier lenguaje de programación orientada a objetos). Por ejemplo, todas las clases de series de tiempo tienen objetos de series de tiempo (creo que están todos S3 con la excepción de su ), ya que les permite cumplir ciertos comportamientos en torno a la construcción y el uso de esos objetos . Lo mismo ocurre con la pregunta acerca de cómo crear un paquete: es una buena idea hacer esto si va a volver a utilizar el código de frecuencia o si el código será útil a otra persona. Se requiere un poco más de esfuerzo, pero la estructura organizativa añadido puede fácilmente compensar el costo.

En cuanto a S3 vs. S4 (discutido en R-Help aquí y aquí ) la directriz básica es que las clases S3 son más "rápido y sucio" mientras que las clases S4 ponen más rígido control sobre los objetos y los tipos . Si usted está trabajando en Bioconductor, normalmente se utilizará S4 (véase, por ejemplo, "clases S4 y métodos" ).

Yo recomendaría la lectura de algunos de los siguientes:

  1. "A (no tan) Breve Introducción a S4" por Christophe Genolini
  2. "nicho de los programadores: Una clase simple, en S3 y S4" por Thomas Lumley
  3. "Brobdingnag: un paquete '' hola mundo '' usando métodos S4 "por Robin KS Hankin
  4. "Conversión de paquetes a S4" por Douglas Bates
  5. "¿Cómo Métodos S4 trabajo" por John Chambers

Para la documentación, la sugerencia de Hadley es el clavo: Roxygen hará la vida más fácil y pone la documentación justo al lado del código. Aparte de eso, todavía lo desea, puede proporcionar otros comentarios en el código más allá lo Roxygen o los archivos requieren hombre, en cuyo caso se trata de una buena práctica para comentar su código para otros desarrolladores. Esos comentarios no va a terminar en el paquete; que sólo será visible en el código fuente.

Otros consejos

Para 3. Uso roxygen -. Funciona como javadoc para tomar los comentarios en los archivos de origen y crear archivos Rd

Eso es la mitad de una docena o más preguntas agrupados en uno, lo que hace que sea difícil de responder.

Así que vamos a tratar de adentro hacia afuera: En primer lugar tratar de resolver su problema RODBC envoltura. Una representación de código sugerirá sí. Me gustaría empezar con funciones simples, y luego tal vez construir un paquete a su alrededor. Que ya le da un poco de encapsulación.

Gran parte del resto es el estilo. Algunos códigos R prominentes confían en S4, mientras que otros juran al respecto. Siempre se puede leer los paquetes de los demás, así como el código de R en sí. Y siempre se puede volver a poner en práctica su envoltorio RODBC de diferentes maneras y la comparación de sus propios enfoques.

Editar: Como reflejo informado y mucho más corta pregunta: Pick algunos paquetes de CRAN, en particular, entre los que se utiliza. Creo que lo encontrará rápidamente poco más o menos interesantes de acuerdo a su estilo.

algo más relacionadas con el estilo que sustancia, pero el Google I guía de estilo vale la pena leer:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top