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