2012-10-02 32 views
15

Tengo unos ~ 20,000x20,000 de datos, cómo convierto el data.table() a un matrix de manera eficiente en términos de velocidad y memoria ?R: cómo convertir datos de data.table() a matriz de manera eficiente (velocidad y memoria)

Probé m = as.matrix(dt) pero lleva mucho tiempo con muchas advertencias. df = data.frame(dt) lleva mucho tiempo y también alcanza los límites de memoria.

¿Hay alguna forma eficiente de hacerlo? ¿O simplemente una función en data.table que devuelve dt como formulario de matriz (como se requiere para alimentar a un modelo estadístico usando el paquete glmnet)?

+2

Proporcione un [ejemplo reproducible] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). –

+0

¿Puedes darnos una idea de cómo son tus datos (usa 'dput (subsetofyourdata)')? ¿Cuáles fueron las advertencias que viste cuando probaste 'as.matrix'? – Justin

+0

¿Puedes poner la estructura de tu mesa en la pregunta? –

Respuesta

0

Probar:

result <- as.matrix(tidytext::cast_sparse(dat_table, 
    column_name_of_rows, 
    column_name_of_columns, 
    column_name_of_values)) 

Debe ser muy eficiente y rápido.

Cuestiones relacionadas