Estimados, tengo que hacer un calculo muy simple, pero con una BD mas o
menos grande (250mil filas x 500 columnas) ... esta BD esta en formato
de SPSS y la importo asi:
library(foreign)
bdr <- read.spss("CASEN_2013_MN_B_Principal.sav",
use.value.labels=FALSE, to.data.frame=TRUE)
luego, quiero transformar el DF en un data.tale pues el calculo requiere
obtener promedios de acuerdo a ciertos criterios, lo que es muy facil
especificar con DT y el calculo es bastante rapido tambien ...
pero al tratar de transformar bdr a data.table
bdr <- as.data.table(bdr)
me transforma las columnas con los datos numericos que debo usar, en
characteres, y al tratar de volverlas a datos numericos con as.numeric()
me reemplaza todos los datos con NA
que estoy haciendo mal ?
adjunto algunas filas del archivo, muchas gracias,
Eric.
--
Forest Engineer
Master in Environmental and Natural Resource Economics
Ph.D. student in Sciences of Natural Resources at La Frontera University
Member in AguaDeTemu2030, citizen movement for Temuco with green city
standards for living
Nota: Las tildes se han omitido para asegurar compatibilidad con algunos
lectores de correo.
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: bdr1a20.csv
Type: text/csv
Size: 32677 bytes
Desc: no disponible
URL:
<https://stat.ethz.ch/pipermail/r-help-es/attachments/20160229/4c6e4b88/attachment-0001.bin>
Ruben Bermad
2016-Feb-29 19:22 UTC
[R-es] problema al importar una BD que esta en formato de SPSS
Hola Eric,
Lo mas probable es que tengas algun registro que no sea numerico, y te este
modificando la clase de la columna.Haz un chequeo rapido con unique() o con
levels(). Al tener tantos registros si es un caracter deberia de aparecerte al
principio o al final de unique() por lo que puedes probar a buscarlo ordenando
el resultado de unique() de mayor a menor y de menor a mayor. Asi lo veras
rapidamente.
Si se te ha transformado en factor lo que tienes que hacer es eliminar ese error
(asumo que solo deberia haber registros numericos), y transformarlo en numerico
mediante: " as.numeric(levels(columna))[columna]".
Si no tienes ningun registro raro y no numerico prueba a transformar la columan
con as.integer() directamente.
A ver si eso te funciona
From: ericconchamunoz en gmail.com
To: r-help-es en r-project.org
Date: Mon, 29 Feb 2016 14:50:27 -0300
Subject: [R-es] problema al importar una BD que esta en formato de SPSS
Estimados, tengo que hacer un calculo muy simple, pero con una BD mas o
menos grande (250mil filas x 500 columnas) ... esta BD esta en formato
de SPSS y la importo asi:
library(foreign)
bdr <- read.spss("CASEN_2013_MN_B_Principal.sav",
use.value.labels=FALSE, to.data.frame=TRUE)
luego, quiero transformar el DF en un data.tale pues el calculo requiere
obtener promedios de acuerdo a ciertos criterios, lo que es muy facil
especificar con DT y el calculo es bastante rapido tambien ...
pero al tratar de transformar bdr a data.table
bdr <- as.data.table(bdr)
me transforma las columnas con los datos numericos que debo usar, en
characteres, y al tratar de volverlas a datos numericos con as.numeric()
me reemplaza todos los datos con NA
que estoy haciendo mal ?
adjunto algunas filas del archivo, muchas gracias,
Eric.
--
Forest Engineer
Master in Environmental and Natural Resource Economics
Ph.D. student in Sciences of Natural Resources at La Frontera University
Member in AguaDeTemu2030, citizen movement for Temuco with green city
standards for living
Nota: Las tildes se han omitido para asegurar compatibilidad con algunos
lectores de correo.
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
[[alternative HTML version deleted]]
Estimados, gracias por sus sugerencias .... no estoy seguro de las razones del problema al importar a R la BD en formato spss, pero por la solucion que encontre, parece que fuera un problema de los importadores (probe importando con todos los paquetes que aparecen mencionados en el la internet) ... al final el problema se resolvio instalando PSPP (en Debian/linux) y usando la utilidad pspp-convert para transformar el archivo *.sav en *.csv y luego lei eso sin problemas en R. (nunca entre en PSPP por si acaso, no lei el archivo y luego lo exporte, si no que lo transfore directamente en .csv) Eso, por si a alguien le sirve. Muchas gracias, Eric. On 02/29/2016 04:22 PM, Ruben Bermad wrote:> Hola Eric, > > Lo mas probable es que tengas algun registro que no sea numerico, y te > este modificando la clase de la columna. > Haz un chequeo rapido con unique() o con levels(). Al tener tantos > registros si es un caracter deberia de aparecerte al principio o al > final de unique() por lo que puedes probar a buscarlo ordenando el > resultado de unique() de mayor a menor y de menor a mayor. Asi lo veras > rapidamente. > > Si se te ha transformado en factor lo que tienes que hacer es eliminar > ese error (asumo que solo deberia haber registros numericos), y > transformarlo en numerico mediante: " as.numeric(levels(columna))[columna]". > > Si no tienes ningun registro raro y no numerico prueba a transformar la > columan con as.integer() directamente. > > A ver si eso te funciona > > > > From: ericconchamunoz en gmail.com > To: r-help-es en r-project.org > Date: Mon, 29 Feb 2016 14:50:27 -0300 > Subject: [R-es] problema al importar una BD que esta en formato de SPSS > > Estimados, tengo que hacer un calculo muy simple, pero con una BD mas o > menos grande (250mil filas x 500 columnas) ... esta BD esta en formato > de SPSS y la importo asi: > > library(foreign) > bdr <- read.spss("CASEN_2013_MN_B_Principal.sav", > use.value.labels=FALSE, to.data.frame=TRUE) > > > luego, quiero transformar el DF en un data.tale pues el calculo requiere > obtener promedios de acuerdo a ciertos criterios, lo que es muy facil > especificar con DT y el calculo es bastante rapido tambien ... > > pero al tratar de transformar bdr a data.table > > bdr <- as.data.table(bdr) > > > me transforma las columnas con los datos numericos que debo usar, en > characteres, y al tratar de volverlas a datos numericos con as.numeric() > me reemplaza todos los datos con NA > > > que estoy haciendo mal ? > > adjunto algunas filas del archivo, muchas gracias, > > > Eric. > > > > -- > Forest Engineer > Master in Environmental and Natural Resource Economics > Ph.D. student in Sciences of Natural Resources at La Frontera University > Member in AguaDeTemu2030, citizen movement for Temuco with green city > standards for living > > Nota: Las tildes se han omitido para asegurar compatibilidad con algunos > lectores de correo. > > > _______________________________________________ R-help-es mailing list > R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es-- Forest Engineer Master in Environmental and Natural Resource Economics Ph.D. student in Sciences of Natural Resources at La Frontera University Member in AguaDeTemu2030, citizen movement for Temuco with green city standards for living Nota: Las tildes se han omitido para asegurar compatibilidad con algunos lectores de correo.
Javier Marcuzzi
2016-Mar-03 05:36 UTC
[R-es] problema al importar una BD que esta en formato de SPSS
Estimado Eric
Recién veo este sitio, nunca importe SPSS, no puedo compartir experiencia al
respecto más que enviarle el link por si lo cree útil.
https://github.com/hadley/haven
Javier Rubén Marcuzzi
De: eric
Enviado: lunes, 29 de febrero de 2016 14:51
Para: Lista R
Asunto: [R-es] problema al importar una BD que esta en formato de SPSS
Estimados, tengo que hacer un calculo muy simple, pero con una BD mas o
menos grande (250mil filas x 500 columnas) ... esta BD esta en formato
de SPSS y la importo asi:
library(foreign)
bdr <- read.spss("CASEN_2013_MN_B_Principal.sav",
use.value.labels=FALSE, to.data.frame=TRUE)
luego, quiero transformar el DF en un data.tale pues el calculo requiere
obtener promedios de acuerdo a ciertos criterios, lo que es muy facil
especificar con DT y el calculo es bastante rapido tambien ...
pero al tratar de transformar bdr a data.table
bdr <- as.data.table(bdr)
me transforma las columnas con los datos numericos que debo usar, en
characteres, y al tratar de volverlas a datos numericos con as.numeric()
me reemplaza todos los datos con NA
que estoy haciendo mal ?
adjunto algunas filas del archivo, muchas gracias,
Eric.
--
Forest Engineer
Master in Environmental and Natural Resource Economics
Ph.D. student in Sciences of Natural Resources at La Frontera University
Member in AguaDeTemu2030, citizen movement for Temuco with green city
standards for living
Nota: Las tildes se han omitido para asegurar compatibilidad con algunos
lectores de correo.
[[alternative HTML version deleted]]
Perfecto, muchas gracias Javier. Saludos, Eric. On 03/03/2016 02:36 AM, Javier Marcuzzi wrote:> Estimado Eric > > Recién veo este sitio, nunca importe SPSS, no puedo compartir > experiencia al respecto más que enviarle el link por si lo cree útil. > > https://github.com/hadley/haven > > Javier Rubén Marcuzzi > > *De: *eric <mailto:ericconchamunoz en gmail.com> > *Enviado: *lunes, 29 de febrero de 2016 14:51 > *Para: *Lista R <mailto:r-help-es en r-project.org> > *Asunto: *[R-es] problema al importar una BD que esta en formato de SPSS > > Estimados, tengo que hacer un calculo muy simple, pero con una BD mas o > > menos grande (250mil filas x 500 columnas) ... esta BD esta en formato > > de SPSS y la importo asi: > > library(foreign) > > bdr <- read.spss("CASEN_2013_MN_B_Principal.sav", > > use.value.labels=FALSE, to.data.frame=TRUE) > > luego, quiero transformar el DF en un data.tale pues el calculo requiere > > obtener promedios de acuerdo a ciertos criterios, lo que es muy facil > > especificar con DT y el calculo es bastante rapido tambien ... > > pero al tratar de transformar bdr a data.table > > bdr <- as.data.table(bdr) > > me transforma las columnas con los datos numericos que debo usar, en > > characteres, y al tratar de volverlas a datos numericos con as.numeric() > > me reemplaza todos los datos con NA > > que estoy haciendo mal ? > > adjunto algunas filas del archivo, muchas gracias, > > Eric. > > -- > > Forest Engineer > > Master in Environmental and Natural Resource Economics > > Ph.D. student in Sciences of Natural Resources at La Frontera University > > Member in AguaDeTemu2030, citizen movement for Temuco with green city > > standards for living > > Nota: Las tildes se han omitido para asegurar compatibilidad con algunos > > lectores de correo. >-- Forest Engineer Master in Environmental and Natural Resource Economics Ph.D. student in Sciences of Natural Resources at La Frontera University Member in AguaDeTemu2030, citizen movement for Temuco with green city standards for living Nota: Las tildes se han omitido para asegurar compatibilidad con algunos lectores de correo.