Como corrigir: o número de itens a serem substituídos não é um múltiplo do comprimento da substituição


Um erro que você pode encontrar no R é:

 Warning message:
  number of items to replace is not a multiple of replacement length

Este erro ocorre quando você tenta substituir um certo número de elementos em uma coluna de vetor ou quadro de dados (suponha 3 elementos) por um número diferente de elementos (suponha 6 elementos).

Este tutorial explica exatamente como corrigir esse erro.

Como reproduzir o erro

Suponha que temos o seguinte quadro de dados em R com alguns valores ausentes na primeira coluna:

 #create data frame
df <- data. frame (a=c(3, NA, 7, NA, NA, 14),
                 b=c(4, 4, 5, 12, 13, 18))

#view data frame
df

   ab
1 3 4
2 NA 4
3 7 5
4 NA 12
5 NA 13
6 14 18

Agora suponha que tentamos substituir os valores ausentes na primeira coluna pelos valores da segunda coluna:

 #attempt to replace missing values in first column with values in second column
df$a[is. na (df$a)] <- df$b

Warning message:
In df$a[is.na(df$a)] <- df$b:
  number of items to replace is not a multiple of replacement length

Estamos recebendo um erro porque tentamos substituir 3 valores ausentes na primeira coluna pelos 6 valores da segunda coluna.

Como corrigir o erro

A maneira mais fácil de corrigir esse erro é simplesmente usar uma instrução ifelse() :

 #replace missing values in column 'a' with corresponding values in column 'b'
df$a <- ifelse(is. na (df$a), df$b, df$a)

#view updated data frame
df

   ab
1 3 4
2 4 4
3 7 5
4 12 12
5 13 13
6 14 18

Esta instrução ifelse() verifica se o valor da coluna “a” está vazio. Nesse caso, é substituído pelo valor correspondente na coluna “b”, caso contrário, é deixado como está.

Outra maneira de corrigir esse erro é simplesmente substituir todos os valores ausentes por um número específico:

 #replace all missing values in column 'a' with zero
df$a[is. na (df$a)] <- 0

#view updated data frame
df

   ab
1 3 4
2 0 4
3 7 5
4 0 12
5 0 13
6 14 18

Usando este método, cada valor ausente na coluna “a” é substituído por um zero.

Recursos adicionais

Como corrigir em R: NAs introduzidos por coerção
Como reparar em R: índice fora dos limites
Como corrigir em R: o comprimento de um objeto mais longo não é múltiplo do comprimento de um objeto mais curto

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *