Hola!! Soy novato en esto del R. Consulto por que ya estoy agotando los recursos para resolver un problema con tutoriales, consultas que se encuentran en google, etc. Si bien el problema parece ser simple no le encuentro la vuelta. Tengo un data.frame que armé importando un csv. Algunas de las columnas son mayoritariamente compuestas por valores números pero class character ya que al contener valores no numéricos ("#¡NULO!" por ejemplo) los importa como character. Quiero convertirlas justamente a un vector numeric (o mejor aun dentro del mismo data.frame que sean numeric) para poder operar con ellas (los valores que no sean números deberían quedar como NA). Probé con <-as.numeric(as.character(SS)) pero me devuelve valores NA. También probé con SS1<- type.convert(SS, na.strings = "NA", as.is = FALSE, dec = ",", numerals = c("allow.loss", "warn.loss", "no.loss")) y luego con as.numeric pero me devuelve los números de ordenación de niveles del factor (creo) Muy agradecido de antemano por cualquier sugerencia, comando o solución (o si estoy cometiendo algún problema lógico en la propia formulación del problema). Este sería mas o menos el contenido de mis datos (como vector). Saludos! Santiago> SS[1] "137155,00" "134714,00" "136184,00" "#¡NULO!" "139683,00" "13827,00" [7] "139450,00" "#¡NULO!" "134462,00" "136058,00" "132818,00" "30020,00" [13] "29283,00" "33885,00" "30885,00" "34390,00" "#¡NULO!" "35104,00" [19] "32154,00" "39554,00" "36246,00" "7226,00" "40595,00" "36674,00" [25] "46877,00" "45278,00" "47273,00" "44755,00" "42184,00" "38457,00" [31] "41808,00" "39004,00" "#¡NULO!" "#¡NULO!" "#¡NULO!" "#¡NULO!" [37] "2351,00" "2982,00" "2080,00" "2331,00" "2562,00" "2479,00"> data.class(SS)[1] "character"> as.numeric(as.character(SS))[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [26] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [[alternative HTML version deleted]]
Hola Santiago, prueba lo siguiente: SS[SS=="#¡NULO!"]<-NA SS1<- type.convert(SS, na.strings = "NA", as.is = FALSE, dec = ",", numerals = c("allow.loss", "warn.loss", "no.loss")) Gerard Reverté -----Mensaje original----- De: R-help-es [mailto:r-help-es-bounces en r-project.org] En nombre de Santiago Repetto Enviado el: martes, 22 de noviembre de 2016 16:07 Para: r-help-es en r-project.org Asunto: [R-es] charater a numeric Hola!! Soy novato en esto del R. Consulto por que ya estoy agotando los recursos para resolver un problema con tutoriales, consultas que se encuentran en google, etc. Si bien el problema parece ser simple no le encuentro la vuelta. Tengo un data.frame que armé importando un csv. Algunas de las columnas son mayoritariamente compuestas por valores números pero class character ya que al contener valores no numéricos ("#¡NULO!" por ejemplo) los importa como character. Quiero convertirlas justamente a un vector numeric (o mejor aun dentro del mismo data.frame que sean numeric) para poder operar con ellas (los valores que no sean números deberían quedar como NA). Probé con <-as.numeric(as.character(SS)) pero me devuelve valores NA. También probé con SS1<- type.convert(SS, na.strings = "NA", as.is = FALSE, dec = ",", numerals = c("allow.loss", "warn.loss", "no.loss")) y luego con as.numeric pero me devuelve los números de ordenación de niveles del factor (creo) Muy agradecido de antemano por cualquier sugerencia, comando o solución (o si estoy cometiendo algún problema lógico en la propia formulación del problema). Este sería mas o menos el contenido de mis datos (como vector). Saludos! Santiago> SS[1] "137155,00" "134714,00" "136184,00" "#¡NULO!" "139683,00" "13827,00" [7] "139450,00" "#¡NULO!" "134462,00" "136058,00" "132818,00" "30020,00" [13] "29283,00" "33885,00" "30885,00" "34390,00" "#¡NULO!" "35104,00" [19] "32154,00" "39554,00" "36246,00" "7226,00" "40595,00" "36674,00" [25] "46877,00" "45278,00" "47273,00" "44755,00" "42184,00" "38457,00" [31] "41808,00" "39004,00" "#¡NULO!" "#¡NULO!" "#¡NULO!" "#¡NULO!" [37] "2351,00" "2982,00" "2080,00" "2331,00" "2562,00" "2479,00"> data.class(SS)[1] "character"> as.numeric(as.character(SS))[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [26] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [[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 Avís legal/Aviso legal La present informació s'envia únicament a la persona a la que va dirigida i pot contenir informació privilegiada o de caràcter confidencial. Qualsevol modificació, retransmissió, difusió o altre ús d'aquesta informació per persones o entitats diferents a la persona a la que va dirigida està prohibida. Si vostè l'ha rebut per error, si us plau contacti amb el remitent i esborri el missatge de qualsevol ordinador. En el cas que aquest missatge vagi a ser contestat per la mateixa via, ha de saber-se que la seva resposta podria ser coneguda per tercers a l'entrar a la xarxa. Per això, si el missatge inclou contrasenyes, números de targetes de crèdit o qualsevol altra informació que vostè consideri confidencial, seria més segur contestar per una altra via i cancel·lar la seva transmissió. L'Ajuntament de Mataró i els seus organismes dependents no poden assumir la responsabilitat derivada del fet de què terceres persones puguin arribar a conèixer el contingut d'aquest missatge durant la seva transmissió. La presente información se envía únicamente a la persona a la que va dirigida y puede contener información privilegiada o de carácter confidencial. Cualquier modificación, retransmisión, difusión u otro uso de esta información por persones o entidades diferentes a la persona a la que va dirigida está prohibida. Si usted la ha recibido por error, por favor contacte con el remitente y borre el mensaje. En el caso de que este mensaje vaya a ser contestado por la misma vía, ha de saberse que su respuesta podría ser conocida por terceros al entrar en la red. Por este motivo, si el mensaje incluye contraseñas, números de tarjetas de crédito o cualquier otra información que considere confidencial, sería más seguro contestar por otra vía y cancelar su transmisión. El Ayuntamiento de Mataró y sus organismos dependientes no pueden asumir la responsabilidad derivada del hecho de que terceras personas puedan llegar a conocer el contenido de este mensaje durante su transmisión. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20161122/78872107/attachment.html>
Estimado Santiago Repetto Sus datos están mal. "#¡NULO!" En R es NULL, pero al importar o escribir los datos, el mismo R debería colocarlos en nulo, también usted puede colocar valores en nulo, pero creo que no es el caso. Luego con as.numeric(datos?) debería funcionar. Javier Rubén Marcuzzi De: Santiago Repetto Enviado: martes, 22 de noviembre de 2016 12:07 Para: r-help-es en r-project.org Asunto: [R-es] charater a numeric Hola!! Soy novato en esto del R. Consulto por que ya estoy agotando los recursos para resolver un problema con tutoriales, consultas que se encuentran en google, etc. Si bien el problema parece ser simple no le encuentro la vuelta. Tengo un data.frame que armé importando un csv. Algunas de las columnas son mayoritariamente compuestas por valores números pero class character ya que al contener valores no numéricos ("#¡NULO!" por ejemplo) los importa como character. Quiero convertirlas justamente a un vector numeric (o mejor aun dentro del mismo data.frame que sean numeric) para poder operar con ellas (los valores que no sean números deberían quedar como NA). Probé con <-as.numeric(as.character(SS)) pero me devuelve valores NA. También probé con SS1<- type.convert(SS, na.strings = "NA", as.is = FALSE, dec = ",", numerals = c("allow.loss", "warn.loss", "no.loss")) y luego con as.numeric pero me devuelve los números de ordenación de niveles del factor (creo) Muy agradecido de antemano por cualquier sugerencia, comando o solución (o si estoy cometiendo algún problema lógico en la propia formulación del problema). Este sería mas o menos el contenido de mis datos (como vector). Saludos! Santiago> SS[1] "137155,00" "134714,00" "136184,00" "#¡NULO!" "139683,00" "13827,00" [7] "139450,00" "#¡NULO!" "134462,00" "136058,00" "132818,00" "30020,00" [13] "29283,00" "33885,00" "30885,00" "34390,00" "#¡NULO!" "35104,00" [19] "32154,00" "39554,00" "36246,00" "7226,00" "40595,00" "36674,00" [25] "46877,00" "45278,00" "47273,00" "44755,00" "42184,00" "38457,00" [31] "41808,00" "39004,00" "#¡NULO!" "#¡NULO!" "#¡NULO!" "#¡NULO!" [37] "2351,00" "2982,00" "2080,00" "2331,00" "2562,00" "2479,00"> data.class(SS)[1] "character"> as.numeric(as.character(SS))[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [26] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [[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 [[alternative HTML version deleted]]
Tu problema es la coma. Cámbiala a punto y luego, as.numeric. El 22/11/2016 8:08 p. m., <javier.ruben.marcuzzi en gmail.com> escribió:> Estimado Santiago Repetto > > Sus datos están mal. > > "#¡NULO!" > > En R es NULL, pero al importar o escribir los datos, el mismo R debería > colocarlos en nulo, también usted puede colocar valores en nulo, pero creo > que no es el caso. > > Luego con as.numeric(datos?) debería funcionar. > > Javier Rubén Marcuzzi > > De: Santiago Repetto > Enviado: martes, 22 de noviembre de 2016 12:07 > Para: r-help-es en r-project.org > Asunto: [R-es] charater a numeric > > Hola!! > Soy novato en esto del R. Consulto por que ya estoy agotando los recursos > para resolver un problema con tutoriales, consultas que se encuentran en > google, etc. Si bien el problema parece ser simple no le encuentro la > vuelta. > > Tengo un data.frame que armé importando un csv. Algunas de las columnas son > mayoritariamente compuestas por valores números pero class character ya que > al contener valores no numéricos ("#¡NULO!" por ejemplo) los importa como > character. Quiero convertirlas justamente a un vector numeric (o mejor aun > dentro del mismo data.frame que sean numeric) para poder operar con ellas > (los valores que no sean números deberían quedar como NA). > > Probé con > <-as.numeric(as.character(SS)) > pero me devuelve valores NA. > > También probé con > SS1<- type.convert(SS, na.strings = "NA", as.is = FALSE, dec = ",", > numerals = c("allow.loss", "warn.loss", "no.loss")) y luego con as.numeric > pero me devuelve los números de ordenación de niveles del factor (creo) > > Muy agradecido de antemano por cualquier sugerencia, comando o solución (o > si estoy cometiendo algún problema lógico en la propia formulación del > problema). > Este sería mas o menos el contenido de mis datos (como vector). > Saludos! > Santiago > > > SS > [1] "137155,00" "134714,00" "136184,00" "#¡NULO!" "139683,00" "13827,00" > [7] "139450,00" "#¡NULO!" "134462,00" "136058,00" "132818,00" "30020,00" > [13] "29283,00" "33885,00" "30885,00" "34390,00" "#¡NULO!" "35104,00" > [19] "32154,00" "39554,00" "36246,00" "7226,00" "40595,00" "36674,00" > [25] "46877,00" "45278,00" "47273,00" "44755,00" "42184,00" "38457,00" > [31] "41808,00" "39004,00" "#¡NULO!" "#¡NULO!" "#¡NULO!" "#¡NULO!" > [37] "2351,00" "2982,00" "2080,00" "2331,00" "2562,00" "2479,00" > > > data.class(SS) > [1] "character" > > > as.numeric(as.character(SS)) > [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > NA NA > [26] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > > [[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 > > > [[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[[alternative HTML version deleted]]