Como reparar em r: a substituição tem x linhas, os dados têm y


Uma mensagem de erro que você pode encontrar ao usar R é:

 Error in `$<-.data.frame`(`*tmp*`, conf_full, value = c("West", "West",: 
  replacement has 3 rows, data has 5

Este erro ocorre quando você tenta adicionar uma nova coluna a um quadro de dados cujos valores são baseados em uma coluna existente, mas não consegue criar a nova coluna primeiro.

O exemplo a seguir mostra como resolver esse erro na prática.

Como reproduzir o erro

Suponha que criemos o seguinte quadro de dados em R:

 #create data frame
df <- data. frame (conference=c('W', 'W', 'W', 'E', 'E'),
                 points=c(99, 90, 86, 88, 95),
                 assists=c(33, 28, 31, 39, 34))	

#view data frame
df

  conference points assists
1 W 99 33
2 W 90 28
3 W 86 31
4 E 88 39
5 E 95 34

Agora suponha que tentamos adicionar uma nova coluna ao quadro de dados chamada conf_full :

 #attempt to create new column based on conference name
df$conf_full[which(df$conference==' W ')] <- ' West '
df$conf_full[which(df$conference==' E ')] <- ' East '

Error in `$<-.data.frame`(`*tmp*`, conf_full, value = c("West", "West",: 
  replacement has 3 rows, data has 5

Estamos recebendo um erro porque o nome da variável conf_full ainda não existe, o que significa que ainda não podemos atribuir valores a esta coluna.

Como evitar o erro

Para evitar esse erro, podemos primeiro criar a variável conf_full e simplesmente atribuir a ela os valores de NA:

 #create conf_full variable
df$conf_full <- NA

Agora que a variável existe, podemos atribuir valores a ela:

 #create new column based on conference
df$conf_full[which(df$conference==' W ')] <- ' West '
df$conf_full[which(df$conference==' E ')] <- ' East '

#view updated data frame
df

  conference points assists conf_full
1 W 99 33 West
2 W 90 28 West
3 W 86 31 West
4 E 88 39 East
5 E 95 34 East

Observe que desta vez não estamos recebendo nenhum erro porque primeiro criamos a variável conf_full antes de tentar atribuir valores a ela.

Recursos adicionais

Os tutoriais a seguir explicam como corrigir outros erros comuns no R:

Como consertar em R: argumentos envolvem diferentes números de linhas
Como corrigir em R: erro na seleção de argumentos não utilizados
Como reparar em R: a substituição tem comprimento zero

Add a Comment

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