Por ejemplo, si mi conjunto de datos es como el siguiente:
> df1 <- c("1", "2", "3", "4", "5") > df2 <- c("6", "7", "8", "9", "10")no seré capaz de sumar df1 + df2. Obtendré este error:
> df1+df2 Error in df1 + df2 : non-numeric argument to binary operatorEsto se debe a que los números en df1 y df2 no son reconocidos como números, sino como palabras. ¿Por qué? Pues al estar entre comillas, R los reconoce como palabras.
Para convertirlos en números necesitamos usar la función destring:
destring <- function(x,keep="0-9.-") { return( as.numeric(gsub(paste("[^",keep,"]+",sep=""),"",x)) ) }De modo en el que al aplicarla a nuestros conjuntos de datos df1 y df2, obtenemos:
> df1 <- destring(df1) > df2 <- destring(df2) > df1+df2 [1] 7 9 11 13 15Así, df1 y df2 se convirtieron en números con los que se pueden realizar operaciones sin obtener el error non-numeric argument to binary operator.
La función destring fue tomada del siguiente post en Stackoverflow: https://stackoverflow.com/questions/9739518/r-cleaning-up-a-character-and-converting-it-into-a-numeric/9740635#9740635
No hay comentarios:
Publicar un comentario