Jak naprawić w r: brakuje argumentu „nie”, bez wartości domyślnej


Błąd, który możesz napotkać w R to:

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

Ten błąd występuje, gdy używasz funkcji ifelse() w R, ale zapominasz o dołączeniu trzeciego argumentu, aby określić wartość, która powinna zostać zwrócona, jeśli test logiczny zwróci wartość false.

W tym samouczku dokładnie wyjaśniono, jak naprawić ten błąd.

Jak odtworzyć błąd

Załóżmy, że mamy następującą ramkę danych w 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

Załóżmy teraz, że spróbujemy użyć funkcji ifelse() do utworzenia nowej kolumny o nazwie miasto zawierającej „Boston”, jeśli wartość w kolumnie zespołu jest równa „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

Otrzymujemy błąd, ponieważ nie podano trzeciego argumentu funkcji ifelse() , która określa wartość, którą powinniśmy zwrócić, jeśli wartość w kolumnie zespołu nie jest równa „B”.

Jak naprawić błąd

Sposobem na naprawienie tego błędu jest podanie trzeciego argumentu funkcji ifelse() , który określa wartość, którą powinniśmy zwrócić, jeśli wartość w kolumnie zespołu nie jest równa „B”.

Poniższa składnia pokazuje, jak to zrobić:

 #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

Zauważ, że tym razem nie otrzymaliśmy żadnych błędów, ponieważ podaliśmy trzeci argument funkcji ifelse() .

W tym przykładzie funkcja ifelse() zwraca wartość „Boston”, jeśli wartość w kolumnie zespołu jest równa „B”, lub wartość „Inne”, jeśli wartość w kolumnie zespołu jest inna.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w R:

Jak naprawić w R: NA wprowadzone przez przymus
Jak naprawić w R: indeks poza zakresem
Jak naprawić w R: długość dłuższego obiektu nie jest wielokrotnością długości krótszego obiektu
Jak naprawić w R: ilość elementów do wymiany nie jest wielokrotnością długości wymiany

Dodaj komentarz

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