En este artículo, discutiremos cómo podemos corregir el error de «número incorrecto de dimensiones» en el lenguaje de programación R.
Un error común que uno puede enfrentar en R es:
Error en [x, 10]: número incorrecto de dimensiones
El compilador de R produce un error de este tipo cuando se intenta hacer referencia a un objeto proporcionando más dimensiones que la dimensión real que tiene el objeto.
Reproduciendo el error:
Consideremos un ejemplo en el que tenemos un vector inicializado con 5 valores en él.
R
# Initialize a vector myVector <- c(10,13,2,6,12)
Como puede ver en el fragmento, myVector es un vector unidimensional que tiene 5 valores. Ahora supongamos que por error intentamos dividirlo en dos dimensiones:
Ejemplo:
En este programa, estamos accediendo al valor almacenado en la 4ª fila y la 1ª columna.
R
# Initialize a vector myVector <- c(10, 13, 2, 6, 12) # Access the value stored at 4th row # and 1st column myVector[4, ]
Producción:
Ejemplo:
En este programa, estamos accediendo al valor almacenado en la primera fila y la cuarta columna. Y aquí el compilador R produce este error porque estamos tratando de crear un subconjunto con 2 dimensiones mientras que el vector tiene 1 dimensión.
R
# Initialize a vector myVector <- c(10, 13, 2, 6, 12) # Access the value stored at 4th # row and 1st column myVector[, 4]
Producción:
Cómo arreglar este error:
Podemos corregir este error fácilmente creando subconjuntos con una dimensión.
Ejemplo:
Considere un programa en el que estamos accediendo al quinto valor del vector (Tratamiento como estructura de datos de 1 dimensión).
R
# Initialize a vector myVector <- c(10, 13, 2, 6, 12) # Access the value stored at 5th position myVector[5]
Producción:
Nota: También se puede acceder a una gran cantidad de valores contiguos del vector con subconjunto por una dimensión:
Ejemplo:
En este programa, estamos accediendo a elementos usando valores de subconjuntos de una dimensión desde la posición igual a 2 hasta la posición igual a 5 (inclusive).
R
# Initialize a vector myVector <- c(10, 13, 2, 6, 12) # Access the value stored at 5th position myVector[2:5]
Producción: