Como incluir na na instrução ifelse em r


Freqüentemente, você pode querer usar uma instrução ifelse em R para criar uma nova coluna em um quadro de dados cujos valores são baseados nos valores de uma coluna existente.

Para fazer isso, você pode usar a seguinte sintaxe básica:

 df$new_column<- ifelse(df$col1 == ' A ', ' val_if_true ', ' val_if_false ')

No entanto, se os valores NA estiverem presentes em uma coluna, os valores na nova coluna serão automaticamente NA.

Para evitar isso, você pode usar a função !is.na() da seguinte forma:

 df$new_column<- ifelse(df$col1 == ' A ' & !is. na (df$col1) , ' val_if_true ', ' val_if_false ')

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: inclua NA na instrução ifelse em R

Suponha que temos o seguinte quadro de dados em R que contém informações sobre vários jogadores de basquete:

 #create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D', 'E', 'F'),
                 conf=c('West', NA, 'West', 'East', 'East', 'East'),
                 points=c(30, 35, 11, 18, 14, NA))

#view data frame
df

  player conf points
1 A West 30
2 B <NA> 35
3 C West 11
4 D East 18
5 E East 14
6 F East NA

Agora suponha que tentamos criar uma nova coluna chamada class que assume os seguintes valores:

  • ‘West_Player’ se conf for igual a ‘West’
  • ‘Outro’ se conf não for igual a ‘Oeste’

O código a seguir mostra como fazer isso:

 #create new column called 'class'
df$class <- ifelse(df$conf == ' West ', ' West_Player ', ' Other ')

#view updated data frame
df

  player conf points class
1 A West 30 West_Player
2 B <NA> 35 <NA>
3 C West 11 West_Player
4 D East 18 Other
5 E East 14 Other
6 F East NA Other

Observe que o valor da classe na linha 2 é igual a NA, pois o valor correspondente na coluna conf é igual a NA.

Para evitar isso, podemos usar a função !is.na() da seguinte forma:

 #create new column called 'class'
df$class <- ifelse(df$conf == ' West ' & !is. na (df$conf), ' West_Player ', ' Other ')

#view updated data frame
df

  player conf points class
1 A West 30 West_Player
2 B <NA> 35 Other
3 C West 11 West_Player
4 D East 18 Other
5 E East 14 Other
6 F East NA Other

Observe que o valor da Classe na linha 2 agora é igual a “Outro” em vez de NA.

Usando a função !is.na() , especificamos que o valor na coluna conf deve ser igual a ‘West’ e não igual a NA para que o valor na nova coluna de classe seja ‘West_Player’.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:

Como escrever uma instrução If Else aninhada em R
Como escrever uma declaração de caso em R
Como adicionar várias colunas ao quadro de dados em R

Add a Comment

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