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]]