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