Hola:
Puedes conseguirlo fácilmente con algunas frases de R básico:
variable<- c("9,301E+11","8,301E+11","00001-00170818","1000055365","G.A.
001-24699570")
cuales.cientificos <- grep("E+", variable)
cientificos <- variable[cuales.cientificos]
cientificos <- sub(",", ".", cientificos)
options(scipen=999)
cientificos <- as.character(as.numeric(cientificos))
variable3 <- variable
variable3[cuales.cientificos] <- cientificos
variable3
[1] "930100000000" "830100000000" "00001-00170818"
"1000055365" "G.A. 001-24699570"
Un saludo,
Marcelino
El 31/05/2022 a las 21:38, juan manuel dias escribió:
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.
001-24699570")
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.
001-24699570")
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.