Como consertar no r: falta o argumento “não”, sem padrão


Um erro que você pode encontrar no R é:

 Error in ifelse(df$team == "B", "Boston"): 
  argument "no" is missing, with no default

Este erro ocorre quando você usa a função ifelse() em R, mas esquece de incluir um terceiro argumento para especificar o valor que deve ser retornado se o teste lógico retornar falso.

Este tutorial explica exatamente como corrigir esse erro.

Como reproduzir o erro

Suponha que temos o seguinte quadro de dados em R:

 #create data frame
df <- data. frame (team=c('B', 'B', 'B', 'B', 'C', 'C', 'C', 'D'),
                 points=c(12, 22, 35, 34, 20, 28, 30, 18),
                 assists=c(4, 10, 11, 12, 12, 8, 6, 10))

#view data frame
df

  team points assists
1 B 12 4
2 B 22 10
3 B 35 11
4 B 34 12
5 C 20 12
6 C 28 8
7 C 30 6
8 D 18 10

Agora suponha que tentamos usar a função ifelse() para criar uma nova coluna chamada cidade que contém “Boston” se o valor na coluna da equipe for igual a “B”:

 #attempt to create new column with team city
df$city <- ifelse(df$team == ' B ', ' Boston ')

Error in ifelse(df$team == "B", "Boston"): 
  argument "no" is missing, with no default

Estamos recebendo um erro porque não conseguimos fornecer um terceiro argumento para a função ifelse() que especifica o valor que devemos retornar se o valor na coluna da equipe não for igual a ‘B’.

Como corrigir o erro

A maneira de corrigir esse erro é simplesmente fornecer um terceiro argumento para a função ifelse() que especifica o valor que devemos retornar se o valor na coluna da equipe não for igual a ‘B’.

A sintaxe a seguir mostra como fazer isso:

 #create new column with team city
df$city <- ifelse(df$team == ' B ', ' Boston ', ' Other ')

#view updated data frame
df

  team points assists city
1 B 12 4 Boston
2 B 22 10 Boston
3 B 35 11 Boston
4 B 34 12 Boston
5 C 20 12 Other
6 C 28 8 Other
7 C 30 6 Other
8 D 18 10 Other

Observe que desta vez não estamos recebendo nenhum erro, pois fornecemos um terceiro argumento para a função ifelse() .

Neste exemplo, a função ifelse() retorna o valor “Boston” se o valor na coluna da equipe for igual a “B” ou o valor “Outro” se o valor na coluna da equipe for outro.

Recursos adicionais

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

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
Como reparar em R: o número de elementos a serem substituídos não é um múltiplo do comprimento de substituição

Add a Comment

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