2012-05-10 14 views
23

Pido disculpas porque sé que esta respuesta es probable en los manuales para escribir un paquete R, pero al leer y mirar los campos Intercalar de otro paquete no puedo averiguar el 100% para qué sirve este campo . En lenguaje sencillo (el mío es inglés), ¿qué hace el campo Intercalar en el archivo de descripción de un paquete? ¿Qué querría poner allí?Intercalar el campo en el paquete Descripción

Respuesta

22

Creo que viene de una época y una situación en las que el orden en el que se originaban los archivos en el directorio R/ (a diferencia del valor predeterminado lexicográfico) seguía siendo importante. Una razón similar de por qué la función .onLoad() a menudo está en un archivo llamado zzz.R.

Por lo que vale, ninguno de mis paquetes utiliza el campo "Intercalar:" en DESCRIPCIÓN.

Editar: Y ya que estamos aficionado a medidas empíricas, aquí hay una rápida grep en una máquina con todas las fuentes CRAN:

$ grep ^Collate */DESCRIPTION | wc -l 
292 
$ ls -1 */DESCRIPTION | wc -l 
3779 

Así que es el 7,7% de todos los paquetes. Realmente no me preocuparía por esto a menos que realmente debe.

+0

Muchas gracias, eso es útil. –

+8

Alrededor del 30% de los paquetes de Bioconductor tienen un campo Clasificar. No estoy seguro de que "de una vez" deje la impresión correcta, uno aún organiza el código en archivos, y el orden en que se compaginan los archivos. Por ejemplo, los métodos S4 deben definirse después de los genéricos, y las clases deben definirse antes que los métodos que los usan o las clases que los contienen. La perversidad de la ordenación lexicográfica en entornos locales distintos de C hace que uno recela de depender de un orden de intercalación automático (¿quizás R clasifica los archivos en una configuración regional C? Demasiado sutil para mí). –

+0

Hah - Casi agregué que puede tener algo que ver con las clases S4 (que en general todavía no uso tanto ...) Pero incluso entonces, por supuesto, puede haber clases, genéricos, métodos en ese orden en el mismo archivo que hacemos en Rcpp. Así que Intercalar: sigue siendo una opción útil, aunque rara vez se usa, y a Tyler no le faltaba nada esencial. –

Cuestiones relacionadas