Buenas, tengo 30 000 000 de datos, y el R no me deja trabajar, como podria corregir eso problema para trabajar con los 30 000 000, mintras es estoy trabajando cada 1 000 000 pero no es igual. Espero puedan ayudarme saludos -- Manuel Bonilla
Bién, yo creo que tienes que dar un poco más de información, por ejemplo cuanto RAM tiene tu maquina, sistema operativo, que métodos estadísticos quieres usar, etc. Si 30 000 000 de dator significa 30 000 000 numeros reales, esto significa (cada uno usa 8 byte de memoria) 8* 30 000 000 =240 000 000 bytes o 240 MB. Como R trabaja con todo en RAM, necesitas por lo menos algo como 1 Giga B de RAM. Si 30 000 000 refiere a numero de individuos (personas "units") en los datos, mucho más. Tienes que dar mejor info! Kjetil 2009/8/7 Manuel Bonilla <napso00 en gmail.com>:> Buenas, tengo 30 000 000 de datos, y el R no me deja trabajar, como podria > corregir eso problema para trabajar con los 30 000 000, mintras es estoy > trabajando cada 1 000 000 pero no es igual. > Espero puedan ayudarme > > saludos > > -- > Manuel Bonilla > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- "... an entire human genome would fit on a music CD." --- www.thinkgene.com
Hola! 2009/8/7 Manuel Bonilla <napso00 en gmail.com>:> Gracias por la ayuda > > Intento con un computador de 3GB Hyper X de ram Procesador core i7 y > maiboard extreme con video PCIex 1Gb...pero cuando hago el proceso R me dice > esto: > Read: 52 232 796 items (pero tengo solamente 30 000 000 datos no se porque > me dice este numero)Seguramente incluye overhead durante la lectura, que puede ser grande. Si usas read.table, puedes tratar de leer los datos directamente con scan(), que usa menos memoria. Si usas windows, la utilización de la memoria no es óptimo, en este caso puede ayudar cambiar a linux!> Error: no se puede ubicar un vector de tamaño 398.5Mb > Mi archivo es un archivo .txt de 281 569 Kb. > Tal ves no uso la buena funcion, para información uso la función "read".Otras ideas: lee CRAN Task View: High Performance and Parallel Computing, y partucularmente los paquetes (CRAN) biglm que puede estimar modelos lm() y glm() con datos no en memoria, leyendo los datos por partes., y bigmemory que también parece interesante. Otra idea: Con preguntas similares en R-help, Brian Ripley multiples veces ha comentado que con conjuntos de datos de este tamaño no se puede esperar homogeneidad. Seguramente existe multiples subgrupos dentro de los datos, que se puede analizar por separado, y despues juntar los analisis, talvez como un "meta-analisis". para este puede ayudar representar los datos usando una base de datos, R tiene múltiples paquetes que hace interfaz a varios bases de datos. kjetil> > Manuel Bonilla > > Kjetil Halvorsen escribió: > > Bién, yo creo que tienes que dar un poco más de información, por > ejemplo cuanto RAM > tiene tu maquina, sistema operativo, que métodos estadísticos quieres usar, > etc. > > Si 30 000 000 de dator significa 30 000 000 numeros reales, esto significa > (cada uno usa 8 byte de memoria) 8* 30 000 000 =240 000 000 bytes o > 240 MB. Como R trabaja con todo en RAM, > necesitas por lo menos algo como 1 Giga B de RAM. Si 30 000 000 refiere a > numero > de individuos (personas "units") en los datos, mucho más. Tienes que > dar mejor info! > > Kjetil > > 2009/8/7 Manuel Bonilla <napso00 en gmail.com>: > > > Buenas, tengo 30 000 000 de datos, y el R no me deja trabajar, como podria > corregir eso problema para trabajar con los 30 000 000, mintras es estoy > trabajando cada 1 000 000 pero no es igual. > Espero puedan ayudarme > > saludos > > -- > Manuel Bonilla > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > >-- "... an entire human genome would fit on a music CD." --- www.thinkgene.com
Me pregunto que tipo de procesamiento hay que hacer de esos 30M de datos. "a veces una muestra es mejor que un censo" Si se trata de una estimación, es muy probable que los estimadores se estabilicen con muestras mucho menores y si esto inquieta un poco muestras bootstrap de tamaño adecuado podrían ser suficientes para el propósito.. por supuesto desconocemos el propósito del procesamiento. Prof. Julio Di Rienzo Estadística y Biometría FCA- U.N. Córdoba IBS CC Member http://sites.google.com/site/juliodirienzo "Biometry, the active pursuit of biological knowledge by quantitative methods." (R.A. Fisher, 1948) 2009/8/7 Kjetil Halvorsen <kjetil1001@gmail.com>> Hola! > > 2009/8/7 Manuel Bonilla <napso00@gmail.com>: > > Gracias por la ayuda > > > > Intento con un computador de 3GB Hyper X de ram Procesador core i7 y > > maiboard extreme con video PCIex 1Gb...pero cuando hago el proceso R me > dice > > esto: > > Read: 52 232 796 items (pero tengo solamente 30 000 000 datos no se > porque > > me dice este numero) > > Seguramente incluye overhead durante la lectura, que puede ser grande. > Si usas read.table, > puedes tratar de leer los datos directamente con scan(), que usa menos > memoria. Si usas windows, la utilización de la memoria no es óptimo, > en este caso puede ayudar cambiar a linux! > > > Error: no se puede ubicar un vector de tamaño 398.5Mb > > Mi archivo es un archivo .txt de 281 569 Kb. > > Tal ves no uso la buena funcion, para información uso la función "read". > > Otras ideas: lee > CRAN Task View: High Performance and Parallel Computing, y > partucularmente los paquetes (CRAN) biglm que puede estimar modelos > lm() y glm() con datos no en memoria, leyendo los datos por partes., y > bigmemory que también parece interesante. > > Otra idea: Con preguntas similares en R-help, Brian Ripley multiples > veces ha comentado > que con conjuntos de datos de este tamaño no se puede esperar > homogeneidad. Seguramente > existe multiples subgrupos dentro de los datos, que se puede analizar > por separado, y despues > juntar los analisis, talvez como un "meta-analisis". para este puede > ayudar representar los datos > usando una base de datos, R tiene múltiples paquetes que hace interfaz > a varios bases de datos. > > kjetil > > > > > Manuel Bonilla > > > > Kjetil Halvorsen escribió: > > > > Bién, yo creo que tienes que dar un poco más de información, por > > ejemplo cuanto RAM > > tiene tu maquina, sistema operativo, que métodos estadísticos quieres > usar, > > etc. > > > > Si 30 000 000 de dator significa 30 000 000 numeros reales, esto > significa > > (cada uno usa 8 byte de memoria) 8* 30 000 000 =240 000 000 bytes o > > 240 MB. Como R trabaja con todo en RAM, > > necesitas por lo menos algo como 1 Giga B de RAM. Si 30 000 000 refiere a > > numero > > de individuos (personas "units") en los datos, mucho más. Tienes que > > dar mejor info! > > > > Kjetil > > > > 2009/8/7 Manuel Bonilla <napso00@gmail.com>: > > > > > > Buenas, tengo 30 000 000 de datos, y el R no me deja trabajar, como > podria > > corregir eso problema para trabajar con los 30 000 000, mintras es estoy > > trabajando cada 1 000 000 pero no es igual. > > Espero puedan ayudarme > > > > saludos > > > > -- > > Manuel Bonilla > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es@r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > > > > > > > > -- > "... an entire human genome would fit on a music CD." > > --- www.thinkgene.com > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Hola, ¿qué tal? No sabemos nada ni de tu sistema y poco de tu conjunto de datos (sólo que tiene 30M de filas). La solución a este tipo de problemas suele pasar por: 1) Cargar tus datos en una base de datos. Te recomiendo postgres. Herramientas del tipo Talend o Kettle te pueden resultar muy útiles para este propósito. 2) Analizar la tabla dentro de la base de datos con las siguientes tres preguntas en mente: 2.1) ¿Necesito todas las columnas? 2.2) ¿Necesito todas las filas? 2.3) ¿Necesito el máximo nivel de detalle o puedo agregar filas desde la base de datos? 3) Filtrar, descartar columnas y agregar dentro de la base de datos. 4) Importar la tabla resultante a R (la conexión JDBC entre R y postgres funciona de maravilla). Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com On Fri, 2009-08-07 at 12:10 -0500, Manuel Bonilla wrote:> Buenas, tengo 30 000 000 de datos, y el R no me deja trabajar, como > podria corregir eso problema para trabajar con los 30 000 000, mintras > es estoy trabajando cada 1 000 000 pero no es igual. > Espero puedan ayudarme > > saludos >
Buenos dias Manuel, Tener 30M de datos (filas?, columnas?) no es en realidad el problema. Asi como algunos ya han mencionado, la dificultad recae en lo que quieres hacer *después* de leer tu información en R. En este tipo de problemas es común usar bases de datos o, si no se tienen, combinaciones de scan() para procesar _parcialmente_ la información e ir adicionando, poco a poco, nuevas porciones de información. Librerias como bigmemory y foreach podrían ser de utilidad. Lastimosamente la ayuda que podemos ofrecerte es limitada porque no conocemos tu sistema operativo y el tipo de hardware que posees. Ademas, tenemos muy poco (nulo?) conocimiento de lo que quieres hacer, como mencioné, una vez lees los datos en R. Dale una mirada a este post en R-help: http://www.nabble.com/How-to-read-HUGE-data-sets--to15729830.html#a15729830 Espero sea de utilidad, Jorge Ivan Velez On 8/7/09, Manuel Bonilla <> wrote:> Buenas, tengo 30 000 000 de datos, y el R no me deja trabajar, como > podria corregir eso problema para trabajar con los 30 000 000, mintras > es estoy trabajando cada 1 000 000 pero no es igual. > Espero puedan ayudarme > > saludos > > -- > Manuel Bonilla > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >