Cómo corregir en R: el reemplazo tiene una longitud cero

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:

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:

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:

Producción

Publicación traducida automáticamente

Artículo escrito por bhuwanesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *