Isa García Barón
2015-Oct-29 10:47 UTC
[R-es] Problema con NA en un csv proveniente de una BDD de access
Hola a todos, Tengo un problema a la hora de realizar subsets en un csv. Este csv proviene de haber seleccionado una serie de datos a partir de una BDD Access mediante el paquete RODBC. Hay una serie de datos que son introducidos mediante un formulario y otros pegados directamente en la BDD. Cuando visualizo el csv hay variables que aparecen vacias (“ ”) ya que al rellenar el formulario en access no se introducía ningún dato mediante el formulario, mientras que hay variables que aparecen como “NA” porque al rellenar el formulario, en el caso de esa observación, no se ha introducido ningún dato en la casilla correspondiente. Bien, el problema es que, aun incluyendo en la lectura del csv (read.csv…) la función na.strings y viendo que efectivamente todas las celdas en blanco (por la primera razón anterior) son tratadas como NA, al querer realizar un subset de los datos con NA de ciertas variables, R no los reconoce, por lo que me devuelve un dataframe con 0 observaciones. He probado con na.strings de todas las maneras posibles: - na.strings=c("", "NA") - na.strings=c("NA") - na.strings=c("") Y estoy intentando realizar el subset de la siguiente manera: - distance<-subset(juv12,distance!="NA") # Selecciono solo las observaciones con valores para esa variable - sindistance<-subset(juv12,distance=="NA") # Selecciono solo las observaciones sin valor (con NA) para esa variable. Problema: devuelve 0 observaciones Además, si realiza una consulta para saber cuántos valores del csv para esa variable son NA de la siguiente manera: table(juv12$distance=="NA") me devuelve solo el número de datos en el que esto es falso, pero si vemos el número de datos en el que esto es falso realmente es la resta del total menos aquellos que tienen valor. Es decir, reconoce que hay celdas sin valores, pero no los reconoce como NA porque no los devuelve como TRUE. Espero haberme explicado bien, Muchas gracias, Isa ---------------------------------------------------------------------------- ----------- Isabel García Barón PhD Student [[alternative HTML version deleted]]
Carlos Ortega
2015-Oct-29 11:09 UTC
[R-es] Problema con NA en un csv proveniente de una BDD de access
Hola, ¿Puedes compartir una parte de ese csv que tiene los NA para verlo más despacio?... Gracias, Carlos Ortega www.qualityexcellence.es El 29 de octubre de 2015, 11:47, Isa García Barón <xanamb en gmail.com> escribió:> Hola a todos, > > > > Tengo un problema a la hora de realizar subsets en un csv. Este csv > proviene > de haber seleccionado una serie de datos a partir de una BDD Access > mediante > el paquete RODBC. Hay una serie de datos que son introducidos mediante un > formulario y otros pegados directamente en la BDD. > > > > Cuando visualizo el csv hay variables que aparecen vacias (? ?) ya que al > rellenar el formulario en access no se introducía ningún dato mediante el > formulario, mientras que hay variables que aparecen como ?NA? porque al > rellenar el formulario, en el caso de esa observación, no se ha introducido > ningún dato en la casilla correspondiente. > > > > Bien, el problema es que, aun incluyendo en la lectura del csv (read.csv?) > la función na.strings y viendo que efectivamente todas las celdas en blanco > (por la primera razón anterior) son tratadas como NA, al querer realizar un > subset de los datos con NA de ciertas variables, R no los reconoce, por lo > que me devuelve un dataframe con 0 observaciones. > > > > He probado con na.strings de todas las maneras posibles: > > > > - na.strings=c("", "NA") > > - na.strings=c("NA") > > - na.strings=c("") > > > > Y estoy intentando realizar el subset de la siguiente manera: > > > > - distance<-subset(juv12,distance!="NA") # Selecciono solo las > observaciones con valores para esa variable > > - sindistance<-subset(juv12,distance=="NA") # Selecciono solo las > observaciones sin valor (con NA) para esa variable. Problema: devuelve 0 > observaciones > > > > Además, si realiza una consulta para saber cuántos valores del csv para esa > variable son NA de la siguiente manera: table(juv12$distance=="NA") me > devuelve solo el número de datos en el que esto es falso, pero si vemos el > número de datos en el que esto es falso realmente es la resta del total > menos aquellos que tienen valor. Es decir, reconoce que hay celdas sin > valores, pero no los reconoce como NA porque no los devuelve como TRUE. > > > > Espero haberme explicado bien, > > > > Muchas gracias, > > > > Isa > > > > > ---------------------------------------------------------------------------- > ----------- > > Isabel García Barón > > PhD Student > > > > > [[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 >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Francisco Rodriguez Sanchez
2015-Oct-29 11:11 UTC
[R-es] Problema con NA en un csv proveniente de una BDD de access
Hola Isa, No sé si he entendido bien, pero en vez de subset(juv12, distance=="NA") prueba con is.na subset(juv12, is.na(distance)) Por ejemplo: http://stackoverflow.com/questions/7980622/subset-of-rows-containing-na-missing-values-in-a-chosen-column-of-a-data-frame Suerte Paco El 29/10/2015 a las 11:47, Isa García Barón escribió:> Hola a todos, > > > > Tengo un problema a la hora de realizar subsets en un csv. Este csv proviene > de haber seleccionado una serie de datos a partir de una BDD Access mediante > el paquete RODBC. Hay una serie de datos que son introducidos mediante un > formulario y otros pegados directamente en la BDD. > > > > Cuando visualizo el csv hay variables que aparecen vacias (? ?) ya que al > rellenar el formulario en access no se introduc?a ning?n dato mediante el > formulario, mientras que hay variables que aparecen como ?NA? porque al > rellenar el formulario, en el caso de esa observaci?n, no se ha introducido > ning?n dato en la casilla correspondiente. > > > > Bien, el problema es que, aun incluyendo en la lectura del csv (read.csv?) > la funci?n na.strings y viendo que efectivamente todas las celdas en blanco > (por la primera raz?n anterior) son tratadas como NA, al querer realizar un > subset de los datos con NA de ciertas variables, R no los reconoce, por lo > que me devuelve un dataframe con 0 observaciones. > > > > He probado con na.strings de todas las maneras posibles: > > > > - na.strings=c("", "NA") > > - na.strings=c("NA") > > - na.strings=c("") > > > > Y estoy intentando realizar el subset de la siguiente manera: > > > > - distance<-subset(juv12,distance!="NA") # Selecciono solo las > observaciones con valores para esa variable > > - sindistance<-subset(juv12,distance=="NA") # Selecciono solo las > observaciones sin valor (con NA) para esa variable. Problema: devuelve 0 > observaciones > > > > Adem?s, si realiza una consulta para saber cu?ntos valores del csv para esa > variable son NA de la siguiente manera: table(juv12$distance=="NA") me > devuelve solo el n?mero de datos en el que esto es falso, pero si vemos el > n?mero de datos en el que esto es falso realmente es la resta del total > menos aquellos que tienen valor. Es decir, reconoce que hay celdas sin > valores, pero no los reconoce como NA porque no los devuelve como TRUE. > > > > Espero haberme explicado bien, > > > > Muchas gracias, > > > > Isa > > > > ---------------------------------------------------------------------------- > ----------- > > Isabel Garc?a Bar?n > > PhD Student > > > > > [[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-- Dr Francisco Rodriguez-Sanchez Integrative Ecology Group Estacion Biologica de Doñana - CSIC Avda. Americo Vespucio s/n 41092 Sevilla (Spain) http://bit.ly/frod_san [[alternative HTML version deleted]]