Pregunta

He estado trabajando en grandes conjuntos de datos últimamente (más de 400 mil líneas). Hasta ahora, he estado usando XTS formato, que funcionó bien para "pequeños" los conjuntos de datos de unos pocos miles décima parte de los elementos.

Ahora que el proyecto crece, R simplemente se bloquea cuando se recuperan los datos de la base de datos y ponerla en el XTS.

Es mi entendimiento de que R debe ser capaz de tener vectores con tamaño de hasta 2 ^ 32-1 elementos (o 2 ^ 64-1 según el la versión). Por lo tanto, llegué a la conclusión de que XTS podrían tener algunas limitaciones, pero no pude encontrar la respuesta en el doc. (Tal vez estaba un poco demasiado confiado acerca de mi comprensión de tamaño del vector teórico es posible).

Para resumir, me gustaría saber si:

  1. XTS tiene de hecho una limitación de tamaño
  2. ¿Cuál cree usted que es la forma más inteligente para manejar grandes series de tiempo? (I estaba pensando en dividir el análisis en varios conjuntos de datos más pequeños).
  3. No consigo un mensaje de error, R, simplemente se apaga automáticamente. Es este un comportamiento conocido?

SOLUCIÓN

  1. El mismo que R y que depende del tipo de memoria que se utilizan (64bits, 32 bits). Es de todas formas extremadamente grande.
  2. Chuncking de datos es de hecho una idea buena, pero no es necesario.
  3. Este problema vino de un bug en el que R 2.11.0 ha sido resuelto en I 2.11.1 . Hubo un problema con largas fechas de vectores (en este caso los índices de los XTS).
¿Fue útil?

Solución

En cuanto a sus dos preguntas, mis $ 0.02:

  1. Sí, hay un límite de 2 ^ 32-1 elementos para los vectores R. Esto viene de la lógica de indexación, y que al parecer se encuentra 'en el fondo' lo suficiente en I que es poco probable que sea reemplazado pronto (ya que afectaría tanto el código existente). Google la lista r-devel para los detalles; Esto ha llegado antes. El xts paquete no impone una restricción adicional.

  2. Sí, las cosas parten en trozos que son manejables es el enfoque más inteligente. Solía ??hacer eso en grandes conjuntos de datos, cuando estaba trabajando exclusivamente con las versiones de 32 bits de R. ahora utilizar 64 bits R y ya no tienen este problema (y / o guardan mis conjuntos de datos sea sensato),

Hay algunos 'fuera de la memoria' se aproxima, pero primero iba a tratar de replantear el problema y afirma que usted realmente necesita todos los 400k filas a la vez.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top