Estimado Jua
Lo que usted busca es relativamente simple pero tiene un problema, dentro
de lo simple, puede usar sqldf y realizar una consulta si contiene, pero
usted puede tener un problema anterior, por ejemplo, una codificación de
excel donde tocó la información, posiblemente un redondeo, algo que
modificó dos datos antes del análisis en R.
¿Que posibilidad tiene de realizar una consulta a la base de datos o
fuente original?
Me refiero a acomodar los datos antes de R, quizás lo tiene en un archivo
excel y en el mismo programa puede corregir los formato de las celdas.
Javier Rubén Marcuzzi
El 31 may. 2022, a las 16:38, juan manuel dias <juamadias en gmail.com>
Hola,
Tengo una base de datos y en uno de las variables/vectores, que es
formato character, dentro de ese vector me encuentro que tengo casos con
notación cientÃfica, casos alfanuméricos etc.
Tengo que dividir esa variable en dos nuevas variables, de forma tal que
me quede una variable con los casos que tengan notación cientÃfica para
convertir a número, otro que donde tenga los alfanuméricos.
variable<- c("9,301E+11","8,301E+11","00001-00170818","1000055365","G.A.
Unidades <- c("remito","remito","remito","remito","remito")
base.1<-cbind(variable,Unidades)
base.1
<image.png>
Lo que necesito serÃa separar "variable" asi:
variable<- c("9,301E+11","8,301E+11","00001-00170818","1000055365","G.A.
variable.1<-c("9,301E+11","8,301E+11",NA,NA,NA)
variable.2<-c("","","00001-00170818","1000055365","G.A. 001-24699570")
Unidades <- c("remito","remito","remito","remito","remito")
base.2<-as.data.frame(cbind(variable,variable.1,variable.2,Unidades))
<image.png>
Lo que no logro hacer es separar "variable" en variable.1 y variable.2.
Intenté con str_detect dentro de un mutate y con if_else pero no logré
que me de el resultado que busco.
####
!str_detect(base2$variable.1,"\\E\\+"))
str_detect( base2$variable.1 ,"\\E\\+"))
Teniendo esa separación luego hago lo siguiente:
## reemplazo comas por puntos "." en variable.1 para convertir a
## convierto numérica variable.1
## y finalmente elimino notación cientÃfica
base.2$variable.1 <-(gsub(",", ".", base.2$variable.1))
base.2$variable.1 <-as.numeric(base.2$variable.1)
base.2$variable.1<-format(base.2$variable.1, scientific=F)
Y finalmente crear una variable "variable.3" que quede asÃ:
## genero una variable final
base.2$variable.3<-ifelse(base.2$variable.1=="
NA",base.2$variable.2,base.2$variable.1)
view(base.2)
<image.png>
Gracias!
Juan.