Jak uwzględnić na w instrukcji ifels w r


Często możesz chcieć użyć instrukcji ifelse w R, aby utworzyć nową kolumnę w ramce danych, której wartości są oparte na wartościach istniejącej kolumny.

Aby to zrobić, możesz użyć następującej podstawowej składni:

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

Jeśli jednak w kolumnie znajdują się wartości NA, wówczas wartości w nowej kolumnie automatycznie staną się NA.

Aby tego uniknąć, możesz użyć funkcji !is.na() w następujący sposób:

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

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: uwzględnij NA w instrukcji ifels w R

Załóżmy, że mamy następującą ramkę danych w R, która zawiera informacje o różnych koszykarzach:

 #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

Załóżmy teraz, że próbujemy utworzyć nową kolumnę o nazwie class , która przyjmuje następujące wartości:

  • „West_Player”, jeśli conf jest równe „West”
  • „Inne”, jeśli conf nie jest równe „Zachód”

Poniższy kod pokazuje, jak to zrobić:

 #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

Należy zauważyć, że wartość klasy w wierszu 2 jest równa NA, ponieważ odpowiadająca jej wartość w kolumnie conf jest równa NA.

Aby tego uniknąć, możemy użyć funkcji !is.na() w następujący sposób:

 #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

Zauważ, że wartość Class w linii 2 jest teraz równa „Inne” zamiast NA.

Używając funkcji !is.na() określiliśmy, że wartość w kolumnie conf musi być równa „West” i nie równa NA, aby wartość w kolumnie nowej klasy wynosiła „West_Player”.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:

Jak napisać zagnieżdżoną instrukcję If Else w R
Jak napisać opis sprawy w języku R
Jak dodać wiele kolumn do ramki danych w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *