Mi gran amigo y colega, Dr Prof Yamagger me alertó acerca de este simpatico gráfico:

El problema del orden de los factores

La mayoría de los programas estadísticos asume un orden en los factores. Por ejemplo, en R a menos que le indiques, asume que existe un orden numérico o alfabetico. Así A viene antes que D y 3 viene antes que 8. En caso que necesitamos darle un orden a los factores

Ordenando los factores

El editor a cargo debería haber ordenado los factores, en caso contrario se asume un orden alfabético, en este caso

  • Bachelet, 2009
  • Bachelet, 2015 y finalmente
  • Piñera, 2013

Tenemos dos opciones para que eso no ocurra

Primera: crear una variable como corresponde

Esto se puede hacer de dos maneras:

Especificarlo al crear la variable:

  • var <- ordered(var, levels = c("primero", "segundo", "tercero"))

u ordenarlo

  • varCreada <- ordered(sizes <- ordered(sizes, levels = c("primero", "segundo", "tercero")))

Segunda (para flojos): ordenarlas alfabéticamente o numéricamente

En este caso vamos a colocar el año antes que el nombre, así se ordena de manera natural del menor al mayor

datos <- c(25.3, 14.4, 11.7)
annos2 <- c("2009 Bachelet", "2013 Piñera", "2015 Bachelet")
graf2 <- as.data.frame(datos, annos2)

Bueno niños, que aprendimos hoy? No es que El Mercurio mienta, es que simplemente son flojos.

Ahora si, gracias Yamagger!

PS

Supongamos por un momento que El Mercurio quisiera “sugerir” que la Piñera 2013 fue mejor que Bachelet 2015: ¿qué hacer? Simple, ver la diferencia. Si se fijan, en el gráfico se observa una gran diferencia del 2009 al 2013 y esta diferencia es menor en el siguiente tramo.

Vamos a ver como queda…

graf3 <- as.data.frame(datos, annos2)
Error in as.data.frame(datos, annos2) : object 'datos' not found

LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpNaSBncmFuIGFtaWdvIHkgY29sZWdhLCBEciBQcm9mIFtZYW1hZ2dlcl0oaHR0cHM6Ly90d2l0dGVyLmNvbS95YW1hZ2dlci9zdGF0dXMvOTcxMTU1NDA4NDAzNTUwMjA4KSBtZSBhbGVydPMgYWNlcmNhIGRlIGVzdGUgc2ltcGF0aWNvIGdy4WZpY286IA0KDQohW10oaHR0cHM6Ly9wYnMudHdpbWcuY29tL21lZGlhL0RYbmdyc25Ya0FBZGZtWS5qcGcpDQoNCiMgRWwgcHJvYmxlbWEgZGVsIG9yZGVuIGRlIGxvcyBmYWN0b3Jlcw0KDQpMYSBtYXlvcu1hIGRlIGxvcyBwcm9ncmFtYXMgZXN0YWTtc3RpY29zIGFzdW1lIHVuIG9yZGVuIGVuIGxvcyBmYWN0b3Jlcy4gUG9yIGVqZW1wbG8sIGVuIFIgYSBtZW5vcyBxdWUgbGUgaW5kaXF1ZXMsIGFzdW1lIHF1ZSBleGlzdGUgdW4gb3JkZW4gbnVt6XJpY28gbyBhbGZhYmV0aWNvLiBBc+0gQSB2aWVuZSBhbnRlcyBxdWUgRCB5IDMgdmllbmUgYW50ZXMgcXVlIDguIA0KRW4gY2FzbyBxdWUgbmVjZXNpdGFtb3MgZGFybGUgdW4gb3JkZW4gYSBsb3MgZmFjdG9yZXMNCg0KYGBge3J9DQpkYXRvcyA8LSBjKDI1LjMsIDE0LjQsIDExLjcpDQphbm5vcyA8LSBjKCJCYWNoZWxldCwgMjAwOSIsICJQafFlcmEsIDIwMTMiLCAiQmFjaGVsZXQsIDIwMTUiKQ0KZ3JhZiA8LSBhcy5kYXRhLmZyYW1lKGRhdG9zLCBhbm5vcykNCmBgYA0KYGBge3IsIGVjaG89RkFMU0UsIHJlc3VsdHM9J2hpZGUnfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KGdndGhlbWVzKQ0KYGBgDQpgYGB7ciwgaW5jbHVkZT1UUlVFfQ0KZ3JhZiAlPiUgDQogICAgICAgIGdncGxvdChhZXMoeCA9IGFubm9zLCB5ID0gZGF0b3MpKSArIA0KICAgICAgICBnZW9tX2NvbCgpICsgDQogICAgICAgIHRoZW1lX2Vjb25vbWlzdCgpICsgDQogICAgICAgIGxhYnMoDQogICAgICAgICAgICAgICAgdGl0bGUgPSAiUG9icmV6YSBwb3IgaW5ncmVzb3MiLCANCiAgICAgICAgICAgICAgICB5ID0gIiUiLCANCiAgICAgICAgICAgICAgICB4ID0gIkHxb3MiDQogICAgICAgICkNCmBgYA0KDQojIyBPcmRlbmFuZG8gbG9zIGZhY3RvcmVzDQpFbCBlZGl0b3IgYSBjYXJnbyBkZWJlcu1hIGhhYmVyIG9yZGVuYWRvIGxvcyBmYWN0b3JlcywgZW4gY2FzbyBjb250cmFyaW8gc2UgYXN1bWUgdW4gb3JkZW4gYWxmYWLpdGljbywgZW4gZXN0ZSBjYXNvDQoNCiAgLSBCYWNoZWxldCwgMjAwOQ0KICAtIEJhY2hlbGV0LCAyMDE1IHkgZmluYWxtZW50ZQ0KICAtIFBp8WVyYSwgMjAxMw0KICANClRlbmVtb3MgZG9zIG9wY2lvbmVzIHBhcmEgcXVlIGVzbyBubyBvY3VycmENCg0KIyMjIFByaW1lcmE6IGNyZWFyIHVuYSB2YXJpYWJsZSBjb21vIGNvcnJlc3BvbmRlDQoNCkVzdG8gc2UgcHVlZGUgaGFjZXIgZGUgZG9zIG1hbmVyYXM6DQoNCkVzcGVjaWZpY2FybG8gYWwgY3JlYXIgbGEgdmFyaWFibGU6IA0KDQogIC0gYHZhciA8LSBvcmRlcmVkKHZhciwgbGV2ZWxzID0gYygicHJpbWVybyIsICJzZWd1bmRvIiwgInRlcmNlcm8iKSlgDQoNCnUgb3JkZW5hcmxvDQoNCiAgLSBgdmFyQ3JlYWRhIDwtIG9yZGVyZWQoc2l6ZXMgPC0gb3JkZXJlZChzaXplcywgbGV2ZWxzID0gYygicHJpbWVybyIsICJzZWd1bmRvIiwgInRlcmNlcm8iKSkpYA0KDQojIyMgU2VndW5kYSAocGFyYSBmbG9qb3MpOiBvcmRlbmFybGFzIGFsZmFi6XRpY2FtZW50ZSBvIG51belyaWNhbWVudGUgIA0KDQpFbiBlc3RlIGNhc28gdmFtb3MgYSBjb2xvY2FyIGVsIGHxbyBhbnRlcyBxdWUgZWwgbm9tYnJlLCBhc+0gc2Ugb3JkZW5hIGRlIG1hbmVyYSBuYXR1cmFsIGRlbCBtZW5vciBhbCBtYXlvcg0KYGBge3J9DQpkYXRvcyA8LSBjKDI1LjMsIDE0LjQsIDExLjcpDQphbm5vczIgPC0gYygiMjAwOSBCYWNoZWxldCIsICIyMDEzIFBp8WVyYSIsICIyMDE1IEJhY2hlbGV0IikNCmdyYWYyIDwtIGFzLmRhdGEuZnJhbWUoZGF0b3MsIGFubm9zMikNCg0KYGBgDQoNCg0KYGBge3J9DQpncmFmMiAlPiUgDQogICAgICAgIGdncGxvdChhZXMoeCA9IGFubm9zMiwgeSA9IGRhdG9zKSkgKyANCiAgICAgICAgZ2VvbV9jb2woKSArIA0KICAgICAgICB0aGVtZV9lY29ub21pc3QoKSArIA0KICAgICAgICBsYWJzKA0KICAgICAgICAgICAgICAgIHRpdGxlID0gIlBvYnJlemEgcG9yIGluZ3Jlc29zIiwgDQogICAgICAgICAgICAgICAgeSA9ICIlIiwgDQogICAgICAgICAgICAgICAgeCA9ICJB8W9zIg0KICAgICAgICApDQpgYGANCg0KQnVlbm8gbmnxb3MsIHF1ZSBhcHJlbmRpbW9zIGhveT8NCk5vIGVzIHF1ZSBFbCBNZXJjdXJpbyBtaWVudGEsIGVzIHF1ZSBzaW1wbGVtZW50ZSBzb24gZmxvam9zLiANCg0KQWhvcmEgc2ksIGdyYWNpYXMgW1lhbWFnZ2VyXShodHRwczovL3R3aXR0ZXIuY29tL3lhbWFnZ2VyKSENCg0KX19QU19fDQoNClN1cG9uZ2Ftb3MgcG9yIHVuIG1vbWVudG8gcXVlIEVsIE1lcmN1cmlvIHF1aXNpZXJhICJzdWdlcmlyIiBxdWUgbGEgUGnxZXJhIDIwMTMgZnVlIG1lam9yIHF1ZSBCYWNoZWxldCAyMDE1OiC/cXXpIGhhY2VyPw0KU2ltcGxlLCB2ZXIgbGEgZGlmZXJlbmNpYS4gU2kgc2UgZmlqYW4sIGVuIGVsIGdy4WZpY28gc2Ugb2JzZXJ2YSB1bmEgZ3JhbiBkaWZlcmVuY2lhIGRlbCAyMDA5IGFsIDIwMTMgeSBlc3RhIGRpZmVyZW5jaWEgZXMgbWVub3IgZW4gZWwgc2lndWllbnRlIHRyYW1vLiANCg0KVmFtb3MgYSB2ZXIgY29tbyBxdWVkYS4uLg0KYGBge3J9DQoNCmRhdG9zMyA8LSBjKCAgIC0xMC45LCAtMi43KQ0KYW5ub3MzIDwtIGMoIjIwMTMgUGnxZXJhIiwgIjIwMTUgQmFjaGVsZXQiKQ0KZ3JhZjMgPC0gYXMuZGF0YS5mcmFtZShkYXRvczMsIGFubm9zMykNCg0KYGBgDQoNCg0KYGBge3J9DQpncmFmMyAlPiUgDQogICAgICAgIGdncGxvdChhZXMoeCA9IGFubm9zMywgeSA9IGRhdG9zMykpICsgDQogICAgICAgIGdlb21fY29sKCkgKyANCiAgICAgICAgdGhlbWVfZWNvbm9taXN0KCkgKyANCiAgICAgICAgbGFicygNCiAgICAgICAgICAgICAgICB0aXRsZSA9ICJSZWR1Y2Np824gZGUgcG9icmV6YSBwb3IgaW5ncmVzb3MiLCANCiAgICAgICAgICAgICAgICB5ID0gIlJlZHVjY2nzbiBkZSBwb2JyZXphIGVuICUiLCANCiAgICAgICAgICAgICAgICB4ID0gIkdvYmllcm5vIg0KICAgICAgICApDQpgYGANCg0KDQohW10oaHR0cHM6Ly9ibG9nLmE0ZXZlcnlvbmUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE2LzA3L3JvbmFsZC1jb2FzZS1kYXRhLWFuYWx5dGljcy1xdW90ZXMtNzY4eDQwNC5qcGcpDQoNCg0KDQoNCg==