Códigos de caracteres en R

Esta entrada acompaña y remata para los usuarios de R la que escribí en general sobre los códigos de caracteres. Es un pequeño experimento en el que comparo lo que pasa al leer un fichero de texto codificado de dos maneras distintas en dos plataformas, Linux y Windows, que usan códigos de caracteres distintos. Primero creo dos ficheros (en Linux) con el mismo contenido pero codificados de dos maneras distintas, utf-8 y latin1: ...

8 de septiembre de 2011 · Carlos J. Gil Bellosta

El paquete reshape de R (I): melt

El paquete reshape de R consta esencialmente de dos funciones, melt y cast, muy útiles para determinado tipo de transformaciones de datos. La función melt se describe sucintamente con el siguiente gráfico: Es decir, toma un data.frame y lo funde (¡dejaré de ser amigo de quien pronuncie meltea!) o, visto de otra manera, estira. He aquí unos ejemplos: library(reshape) iris.m <- melt(iris) iris.m Nótese cómo melt es inteligente y no necesita (en muchas ocasiones) que se le especifiquen cosas evidentes. De hecho, la expresión anterior es equivalente a las siguientes: ...

7 de septiembre de 2011 · Carlos J. Gil Bellosta

Códigos de caracteres, unicode y UTF-8

Unos quebraderos de cabeza en el desarrollo del paquete pxR concernientes a los distintos códigos de caracteres en que hay que transfomar los datos me han obligado a profundizar en este enojoso asunto. En el principio, todo era felicidad. Existía el código ASCII que establecía una correspondencia entre caracteres, números y su representación binaria. Así, a la letra b le correspondía el número 98 cuya codificación binaria es el byte 01100010. ...

6 de septiembre de 2011 · Carlos J. Gil Bellosta

Un paseo por cloudnumbers

Cloudnumbers es una empresa que ofrece servicios de computación de alto rendimiento en la nube con especial énfasis en aplicaciones que corren sobre R. Me ofrecieron una cuenta temporal y gratuita el otro día y en la entrada de hoy voy a describir mis primeros pasos en su plataforma. Hace dos años hice, y dejé descrita, mi primera incursión en la computación con R en la nube. En dicha ocasión utilicé la plataforma EC2 de Amazon: en resumidas cuentas, Amazon alquila servidores con diversas configuraciones de software por horas a un precio muy competitivo y uno puede acceder a ellos vía ssh, instalar R, los paquetes necesarios, correr el código y descargar los resultados. ...

5 de septiembre de 2011 · Carlos J. Gil Bellosta

"Arte gráfico" con R

El otro día di con un blog dedicado al arte matemático y en particular con esta entrada sobre cómo crear figuras mediante rotación de segmentos: El código (en matlab) estaba disponible y lo traduje a R: graphic.art <- function( foo, n = 200, init = -1, end = 1, breaks = 20 ){ x <- seq( init, end, by = 1 / breaks ) base <- matrix( c( x, foo( x ) ), ncol = 2 ) rotate <- function(a,m) m %*% matrix(c(cos(a), -sin(a), sin(a), cos(a)), 2) my.lines <- sapply( 2 * pi * ( 1:n ) / n, rotate, base, simplify = F ) limits <- data.frame(do.call(rbind, my.lines)) limits <- data.frame(lapply(limits, range)) plot(limits, type = "n") lapply(my.lines, function(x) lines(x, col = sample(colours(), 1))) } Unos querrán probar diversas opciones: graphic.art(sin) graphic.art(exp) graphic.art(tan) A otros tal vez les interese comparar el código en R con el original en matlab para evaluar pros y contras.

29 de agosto de 2011 · Carlos J. Gil Bellosta

Comparación de variables aleatorias de Poisson

El otro día apareció publicado en Significance una comparación entre el número de tarjetas recibidas por las selecciones inglesas de fútbol masculina y femenina. Los hombres habían recibido 196 tarjetas en los 48 partidos disputados en el periodo de referencia y las mujeres, 40 en 24 partidos. El promedio de tarjetas, por lo tanto, de 4.1 y 1.7 respectivamente. Y la pregunta es: ¿hay motivos razonables para pensar que las mujeres juegan menos sucio? ...

21 de agosto de 2011 · Carlos J. Gil Bellosta

Una feliz conjunción estadístico-algebraica (y II)

Abandonamos el otro día nuestra discusión sobre la feliz conjunción estadístico-algebraica que subyace a esa técnica conocida como análisis de correspondencias en el punto en que habíamos descompuesto la matriz $B$ de la forma $B = PDQ^\prime$, donde $P$ y $Q$ son matrices cuyas columnas son vectores ortonormales $p_i$ y $q_j$ y $D$ es una matriz diagonal (aunque no necesariamente cuadrada) cuyos elementos de la diagonal (en orden decreciente) son $\lambda_k$. ...

16 de agosto de 2011 · Carlos J. Gil Bellosta

Una feliz conjunción estadístico-algebraica

Tomemos una tabla de contingencia, p.e., library(MASS) a <- as.matrix(caith) # fair red medium dark black # blue 326 38 241 110 3 # light 688 116 584 188 4 # medium 343 84 909 412 26 # dark 98 48 403 681 85 que se refiere a los habitantes de una población de Escocia clasificados según el color de los ojos y el pelo. ¿Habrá una relación entre ambas variables? ...

12 de agosto de 2011 · Carlos J. Gil Bellosta

Don't be loopy!

Don’t be loopy! es el título de una presentación realizada en el SAS Global Forum de 2007. Tiene que ver con el motivo que me hizo en mi día abandonar SAS y buscar —entonces aún no lo conocía— el cobijo de R: sus limitaciones para todo lo que tiene que ver con simulaciones, remuestreos, jackknifes, _bootstraps _y similares. El artículo muestra lo que debería ser el estado del arte para realizar este tipo de programas con SAS. En el primero de los problemas que estudia, que denomina bootstrap simple, muestrea 1.000 veces un conjunto de datos de 50.000 observaciones y calcula el valor de la curtosis para cada una de ellas. Finalmente, proporciona un intervalo de confianza para dicho valor. ...

11 de agosto de 2011 · Carlos J. Gil Bellosta

SVD de matrices enormes con R

Supongo que mis lectores habrán leído acerca del Netflix Prize. En el vídeo de este viernes se ilustra cómo se puede usar R para implementar la parte más intensiva computacionalmente de la solución ganadora utilizando el paquete irlba, la descomposición de la matriz de datos en sus componentes singulares (más propiamente, obtener algunas de ellas).

5 de agosto de 2011 · Carlos J. Gil Bellosta