[R-es] Resultados distintos

Carlos J. Gil Bellosta cgb en datanalytics.com
Mar Oct 13 18:03:51 CEST 2009


Hola, ¿qué tal?

Cosas de la naturaleza de lo que cuentas suceden con frecuencia y
usando cualquier tecnología.

Las causas del problema pueden ser múltiples y los anecdotarios de los
que hemos trabajado llevando datos de unos sistemas a otros son
prolijos y variopintos.

Consejo: ejecuta el proceso en paralelo en los dos sistemas que dan
resultados distintos y aisla el paso en el que se produce la
divergencia. Si puedes, extrae la "fila culpable". Lee entonces bien
el manual del comando culpable y mira a ver cómo puede ser influido
por algún tipo de parámetro de configuración (desde el formato de las
fechas hasta el "encoding" de los ficheros de texto).

Es una pesadez, pero al final del proceso habrás aprendido "una cosa
más", como en el refrán.

Un cordial saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com

2009/10/10 David A.C. <diuck7 en hotmail.com>:
>
> Buenas tardes a todos,
>
>
>
> tengo un problema con R: ejecuto el mismo script en el ordenador del trabajo y en mi portátil con los mismos
>
> datos y obtengo resultados diferentes (siendo los correctos, los obtenidos en el trabajo):
>
>
>
> rm(list=ls())
> directorio<-"C:\\Documents and Settings\\BDs\\"
>
> library(RODBC)
> library(car)
> library(gdata)
>
> ### DATOS A ###
> Adat<-read.xls(paste(directorio,"a.xls",sep=""),sheet=1)
> colnames(Adat)<-tolower(colnames(Adat))
>
> Adat<-Adat[,-c(1,2,7:9)]
> Adat$m<-as.character(Adat$m)#CAMBIO EL TIPO PARA NO TENER PROBLEMAS
> Adat$v<-as.character(Adat$v)#CAMBIO EL TIPO PARA NO TENER PROBLEMAS
>
> ### DATOS B ###
> load(paste(directorio,"b.rda",sep=""))
>
> b$n<-as.character(b$n)#CAMBIO EL TIPO PARA NO TENER PROBLEMAS
> b$p<-as.character(b$p)#CAMBIO EL TIPO PARA NO TENER PROBLEMAS
>
> b$t <- recode(b$t, 'NA=""', as.factor.result=TRUE)
>
> ### MERGE ###
> Totdat<-merge(b,Adat,by.x=c("t","n","num","p","c"),by.y=c("t","v","num","m","c"),all.x=T,all.y=T)#dim(Totdat)=>5483 rows; 20 variables
>
> ### QUITO LAS FILAS DUPLICADAS ###
> Totdat<-Totdat[!duplicated(Totdat),]
> dim(Totdat)#4982 rows; 20 variables
>
> #CREO UNA VARIABLE IDENTIFICADORA
> Totdat$MI_id<-paste(1:dim(Totdat)[1],"mi_id",sep="_")
>
> ### ACTUALIZO Totdat CON NUEVOS DATOS:
> dat1<-read.xls("C:\\Documents and Settings\\Obtenido del script\\dat1.xls",sheet=1)
>
> dat1<-dat1[(!is.na(dat1$ti) & !is.na(dat1$fi) & !is.na(dat1$x) & !is.na(dat1$y)),]
> dim(dat1)#401rows - 33cols
> dat1<-dat1[,-c(16:33)]#ELIMINO LAS COLUMNAS QUE NO ME INTERESAN
> dim(dat1)#401rows - 15cols
>
>
> system.time({for (i in 1:dim(dat1)[1]){
>                     for (j in 1:dim(Totdat)[1]){
>                        if (dat1$MI_id_dat1[i]==Totdat$MI_id[j]){
>                           Totdat$ti[j]<-dat1$ti[i]
>                           Totdat$fi[j]<-dat1$fi[i]
>                           Totdat$x[j]<-dat1$x[i]
>                           Totdat$y[j]<-dat1$y[i]
>                           break
>                        }
>                     }
>                 }
> })
>
> dim(Totdat[(!is.na(Totdat$x) & !is.na(Totdat$y)),])
>
> #en el pc del trabajo da :4769rows   21cols
>
> #en mi portátil da:4751rows   21cols !!!
>
>
>
> dim(Totdat[(!is.na(Totdat$add) & !is.na(Totdat$x) & !is.na(Totdat$y)),])
>
> #en el pc del trabajo da :4334 rows 21 cols
>
> #en mi portátil da:4316rows   21cols !!!
>
>
>
> dim(Totdat[(!is.na(Totdat$add) & is.na(Totdat$x) & is.na(Totdat$y)),])
>
> #en el pc del trabajo da :213 rows 21 cols
>
> #en mi portátil da:231rows  21cols !!!
>
>
>
> dim(Totdat[(is.na(Totdat$add) & !is.na(Totdat$x) & !is.na(Totdat$y)),])
>
> #en el pc del trabajo da :435 rows 21 cols
>
> #en mi portátil da:435rows  21cols
>
>
>
> La versión de R y la de las librerías cargadas en ambos ordenadores son la misma. La versión de Excel también. Lo único que cambia entre las máquinas es el sistema operativo, que en el trabajo es el Windows XP Professional y el de mi portátil es el Windows XP Media Center Edition. Lo curioso de todo es que he creado una máquina virtual en el portátil con el sistema operativo Windows 2000 Server y obtengo los resultados correctos. He probado en varias máquinas y en todas ellas me dan los resultados correctos, menos en mi portátil y en mi ordenador de sobremesa, que también tiene el Windows XP Media Center Edition.
>
>
>
> Muchas gracias. Saludos,
>
> David.
> _________________________________________________________________
> ¿Estás fuera de temporada? Entra ya en Nueva Temporada y entérate antes que nadie de sobre famosos, moda, belleza y el look que se lleva este otoño.
>
>        [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>



Más información sobre la lista de distribución R-help-es