Jak naprawić: przynajmniej żadnych brakujących argumentów; informacja zwrotna


Komunikat ostrzegawczy, który możesz napotkać w R, to:

 Warning message:
In min(data): no non-missing arguments to min; returning Inf 

Ten komunikat ostrzegawczy pojawia się przy każdej próbie znalezienia minimalnej lub maksymalnej wartości wektora o zerowej długości.

Należy pamiętać, że jest to jedynie komunikat ostrzegawczy i w rzeczywistości nie uniemożliwia uruchomienia kodu.

Można jednak zastosować jedną z następujących metod, aby całkowicie uniknąć tego komunikatu ostrzegawczego:

Metoda 1: Usuń komunikat ostrzegawczy

 suppressWarnings(min(data))

Metoda 2: Zdefiniuj funkcję niestandardową do obliczenia minimum lub maksimum

 #define custom function to calculate min
custom_min <- function (x) { if (length(x)>0) min(x) else Inf}

#use custom function to calculate min of data
custom_min(data)

Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce.

Metoda 1: Usuń komunikat ostrzegawczy

Załóżmy, że próbujemy użyć funkcji min() do znalezienia minimalnej wartości wektora o zerowej długości:

 #define vector with no values
data <- numeric(0)

#attempt to find min value of vector
min(data)

[1] Lower
Warning message:
In min(data): no non-missing arguments to min; returning Inf

Zauważ, że otrzymaliśmy komunikat ostrzegawczy, który informuje nas, że próbowaliśmy znaleźć minimalną wartość wektora bez żadnych brakujących argumentów.

Aby uniknąć tego komunikatu ostrzegawczego, możemy użyć funkcji supresWarnings() :

 #define vector with no values
data <- numeric(0)

#find minimum value of vector
suppressWarnings(min(data))

[1] Lower

Wartość minimalna nadal jest obliczana jako „ Inf ”, ale tym razem nie otrzymujemy żadnych komunikatów ostrzegawczych.

Metoda 2: Zdefiniuj funkcję niestandardową

Innym sposobem uniknięcia komunikatu ostrzegawczego jest zdefiniowanie niestandardowej funkcji, która oblicza wartość minimalną tylko wtedy, gdy długość wektora jest większa od zera, w przeciwnym razie zwracana jest wartość „ Inf ”:

 #define vector with no values
data <- numeric(0)

#define custom function to calculate min
custom_min <- function (x) { if (length(x)>0) min(x) else Inf}

#use custom function to calculate min
custom_min(data)

[1] Lower

Należy pamiętać, że wartość minimalna jest obliczana jako „ Inf ” i nie otrzymujemy żadnych komunikatów ostrzegawczych.

Dodatkowe zasoby

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

Jak naprawić w R: dim(X) musi mieć długość dodatnią
Jak naprawić w R: Nazwy nie pasują do poprzednich nazw
Jak naprawić w R: długość dłuższego obiektu nie jest wielokrotnością długości krótszego obiektu
Jak naprawić w R: kontrasty można zastosować tylko do czynników o 2 lub więcej poziomach

Dodaj komentarz

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