En este artículo, discutiremos cómo corregir el error de reemplazo tiene longitud cero en el lenguaje de programación R.
El reemplazo tiene longitud cero:
El compilador R produce tal error. Generalmente, este error toma la siguiente forma:
Error in vect[0] : replacement has length zero
El compilador produce este error cuando un programador intenta reemplazar un valor en un vector con algún otro valor pero el otro valor tiene una longitud igual a cero, lo que implica que el otro valor no existe.
Cuándo puede ocurrir este error:
Considere un ejemplo en el que tenemos un vector inicializado con 5 cinco valores.
R
# Initializing a vector vect = c(5, 8, 4, 12, 15)
Ahora supongamos que queremos iterar sobre el vector y en cada paso de la iteración queremos asignar la suma del valor actual y el valor almacenado en la posición anterior en la posición actual.
R
# Initializing a vector vect = c(5, 8, 4, 12, 15) # Iterate over the vector for (i in 1 : length(vect)) { # Assign sum vect[i] = vect[i] + vect[i - 1] }
Producción:
El compilador R produce este error debido al caso:
vect[1] = vect[1] + vect[0]
Esto se debe a que la indexación en R comienza desde 1. Por lo tanto, vect[0] no existe.
Podemos confirmar que vect[0] no existe simplemente imprimiendo el valor:
Ejemplo:
R
# Print the value stored at the index 0 print(vect[0]
Producción:
La salida es un vector numérico que tiene una longitud igual a cero.
Arreglando el error:
Podemos corregir este error simplemente ocupándonos del caso que puede acceder al valor que no existe durante la iteración.
Ejemplo:
R
# Initializing a vector vect = c(5, 8, 4, 12, 15) # Iterate over the vector for (i in 2 : length(vect)) { # Assign sum vect[i] = vect[i] + vect[i - 1] # Print the value print(vect[i]) }
Producción: