En este artículo, vamos a ver cómo corregir: ‘x’ debe ser numérico. Para esto, cubriremos dos ejemplos del mensaje de error «x debe ser numérico».
Ejemplo 1: El error en el vector ‘x’ debe ser numérico
En este ejemplo, crearemos un vector e intentaremos trazar un gráfico hist() con datos particulares y luego ocurrirá que la ‘x’ debe ser numérica porque pasamos datos de string a un histograma.
Cómo producir un error:
R
# vector creation x <- c("61", "4", "21", "67", "89", "2") # display vector print(x) # plotting hist hist(x)
Producción:
[1] "61" "4" "21" "67" "89" "2" Error in hist.default(x): 'x' must be numeric Traceback: 1. hist(x) 2. hist.default(x) 3. stop("'x' must be numeric")
En el ejemplo anterior, hemos visto que cuando tratamos de trazar hist, se produce un error debido a los datos de string, lo que significa que el histograma debe estar en datos numéricos.
Cómo resolver este error:
Para solucionar este error, convertiremos los elementos vectoriales en datos numéricos utilizando métodos as.numeric().
R
x <- c("61", "4", "21", "67", "89", "2") print(x) res <- as.numeric(x) hist(res)
Producción:
Ejemplo 2: el error en el marco de datos ‘x’ debe ser numérico
De manera similar, aquí crearemos un marco de datos con elementos de datos de string e intentaremos trazar hist().
Cómo producir un error:
R
# Create data for chart val <-data.frame("num"=c("77","55","80","60"), "course"=c('DSA','C++','R','Python')) print(val) hist(val[,1])
Producción:
num course 1 77 DSA 2 55 C++ 3 80 R 4 60 Python Error in hist.default(val[, 1]): 'x' must be numeric Traceback:
En el ejemplo anterior, hemos visto que cuando tratamos de trazar hist, se produce un error debido a los datos de string, lo que significa que el histograma debe estar en datos numéricos.
Cómo resolver este error:
Para resolver este error, convertiremos el elemento del marco de datos en datos numéricos utilizando métodos as.numeric().
R
# Create data for chart val <-data.frame("num"=c(77,55,80,60), "course"=c('DSA','C++','R','Python')) print(val) hist(val[,1])
Producción: