Guía de estilo de R (de Google)

R

R es un lenguaje de programación de alto nivel que se usa principalmente en aplicaciones estadísticas y para la generación de gráficos. El objetivo de esta guía de estilo es que nuestro código sea más fácil de leer, compartir y analizar. Las reglas de esta guía fueron consensuadas con la comunidad de usuarios de R en Google.

  • Resumen de las reglas de estilo

    1. Nombres de ficheros: tienen la extensión .R
    2. Identificacores: variable.name, FunctionName, kConstantName
    3. Longitud de línea: no más de 80 caracteres
    4. Indentación: dos espacios, no tabuladores
    5. Espacios
    6. Llaves: el primero en la misma línea; el último, solo
    7. Asignaciones: usar <-, no =
    8. Puntos y comas: no usarlos
    9. Distribución general y ordenación
    10. Comentarios: todos los comentarios comienzan con # seguido de un espacio; los comentarios dentro del código necesitan dos espacios delante de #
    11. Definiciones y llamadas a funciones
    12. Documentación de funciones
    13. Ejemplo de función
    14. Estilo para los TODO: TODO(username)
  • Resumen de las reglas de programación

Cómo no restar números fuzzy

Esta entrada viene motivada por varios asuntos relacionados que me han sucedido en los últimos tiempos. El primero es un colega que me preguntó sobre si el paro había subido o bajado comparando datos de un par de trimestres.

La respuesta prima facie es evidente: restas las tasas publicadas y ya. Sin embargo, las cosas son un poco más complicadas si se tiene en cuenta que la EPA tiene un error. Es decir, existen infinitas trayectorias posibles entre las tasas de paro reales (pero desconocidas) de los dos trimestres. En térmimos matemáticos, la variación de la tasa de paro es $X_1 - X_0$, la diferencia de (presuntamente) dos variables aleatorias normales, que es otra variable aleatoria normal con colas que se extienden a ambos lados del cero.

En recuerdo de Leo Breiman

Recomiendo leer esto. Es un artículo que repasa la labor de Leo Breiman, pionero en esa nueva forma de plantear el análisis de datos que acabó convirtiéndose en la minería de datos y de algunos de los algoritmos y métodos más comunes que conforman la caja de herramientas de quienes lo practican hoy en día. Entre ellos, los árboles de decisión y de regresión y los random forests.

Así comienza el artículo:

How many theoretical probabilists walk away from a tenured faculty position at a top university and set out to make their living as consultants? How many applied consultants get hired into senior faculty positions in first-rate research universities? How many professors with a fine reputation in their field, establish an equally fine reputation in a different field, after retirement? Leo Breiman did all of these things and more.

Catorce mitos sobre el mercado eléctrico

Estos catorce mitos son, en realidad, siete y siete. Los primeros, de FEDEA:

  1. El déficit de tarifa es consecuencia de una sobre retribución de la generación o del exceso de renovables del sistema y su generosa retribución o de las subvenciones soportadas
  2. El impacto en los hogares (o en las empresas) de eliminar el déficit de tarifa incrementando los precios es inasumible
  3. La retribución de todos los “fabricantes” de energía al precio que marca el fabricante más caro es una característica ESPECÍFICA de la generación eléctrica y enriquece a los productores
  4. Los precios de la generación en España son de los más elevados de Europa
  5. La causa del coste de la energía es el carácter oligopolístico del mercado de generación
  6. Los “excesivos” e “injustos” beneficios de las eléctricas españolas son una prueba del abuso al que someten al mercado
  7. Las subastas CESUR encarecen el precio de la energía

Los otros siete, del Observatorio Crítico de la Energía:

Cambios, cambios, cambios

Cambios en mi página. Desaparece toda mi oferta de consultoría. Porque la abandono.

Cambios en mi vida profesional. Voy a convertirme en un empleado. Sí, de uno de esos gigantes de internet, eBay.

Cambio de residencia. Viviré en un puente aéreo entre Madrid y Zúrich.

Y, finalmente, cambios en la estética de estas páginas. ¡Ya era hora!

Pero seguiré publicando noticias que sean del interés de mis lectores. ¡Eso sí que no cambia!

Más (y distinto) sobre los censos

A los pocos días de publicar Los censos huelen a naftalina (y son muy caros) pasó por mis manos una visión alternativa, 2020 vision: why a full census should be kept. Danny Dorling, un tipo que escribe cosas muy interesantes, entra al debate argumentando cómo los censos tradicionales y los basados en muestras y registros administrativos son, a lo más, complementarios y nunca sustitutos.

No sé si creer sus argumentos enteramente. Por ejemplo, cuando dice que [B]oth the 1991 and 2001 census revealed that our admin records were including a million people who were not actually here anymore. Porque es posible que los registros administrativos de hoy en día sean más de fiar que los de hace diez o veinte años (¿qué ordenadores había entonces?). Pero tiene razón, creo, al insistir en un punto que ya había mencionado yo en este vídeo: que en censos y encuestas se pierde tiempo, espacio y dinero preguntando de nuevo a la gente cosas que la administración ya conoce sobradamente de ellos. Debería, más bien, aprovechar la ocasión para obtener información adicional, anteriormente desconocida y pertinente. ¿No os parece?

Macros sintácticas con R

Creo que muchos hemos tropezado con las macros alguna vez. Yo conocía las del preprocesador de C o el tinglado que tiene SAS. Y nunca fui muy amigo de ellas.

Pero el otro día leí Stop Writing JavaScript Compilers! Make Macros Instead y se me alargaron los dientes. Así que he buscado información adicional hasta hacerme una idea de la diferencia entre una macro que se limita a reemplazar texto, una macro procedural —como las del lenguaje PL/I, antecesor e inspirador de SAS— y las sintácticas, como las que tiene Lisp (¿cuándo tendré tiempo para aprenderlo en condiciones?).

Curso de estadística y R de Hastie y Tibshirani

Los profesores Hastie y Tibshirani, coautores de Elements of Statistical Learning, de muchas técnicas predictivas y, todo hay que decirlo, ídolos intelectuales míos, organizan un MOOC gratuito, Statistical Learning entre el 21 de enero y el 22 de marzo.

Si estás leyendo esto (es decir, si has aterrizado en mi bitácora), te interesa. Si no te apuntas, te aviso, te arrepentirás.

Dicho lo cual, yo estaré ahí. Y se cuenta que podrían organizarse grupos locales de participantes —p.e., en Madrid— para resolver dudas y problemas.

Nueva edición de mi taller de R y Hadoop en Zaragoza

Los días 17 y 18 de enero impartiré una versión extendida (¡siete horas!) de mi taller de R y Hadoop en Zaragoza. Para los interesados:

El temario será el mismo que en las ediciones anteriores aunque en esta ocasión habrá más tiempo para profundizar en algunos conceptos, realizar ejercicios adicionales, etc.

Error de tipo I, error de tipo II

Aquí está la noticia sobre el resultado de un error de tipo I: Danone takes legal action over milk scare.

Este otro, sobre un error de tipo II: Wave a banknote at a pundit and he’ll predict anything.

Siempre me ha llamado la atención el segundo caso: ¿tienen realmente responsabilidades penales los geólogos? He leído algunos artículos al respecto y nunca he visto el caso planteado de la manera en que voy a hacerlo aquí.