Ten powtarzalny przykładem jest bardzo uproszczona wersja mojego kodu:NaN jest usuwany przy użyciu na.rm = TRUE
x <- c(NaN, 2, 3)
#This is fine, as expected
max(x)
> NaN
#Why does na.rm remove NaN?
max(x, na.rm=TRUE)
> 3
Dla mnie NA
(brak wartości) i NaN
(nie liczba) to dwie zupełnie różne podmioty, dlaczego na.rm
usunąć NaN
? Jak mogę zignorować NA
, a nie NaN
?
ps: Używam 64-bitowego R wersji 3.0.0 na Windows7.
Edit: Po niektórych więcej badań stwierdziliśmy, że is.na
zwraca true dla NaN
też! To jest przyczyną nieładu dla mnie.
is.na(NaN)
> TRUE
Tak, właśnie zauważyłem to zachowanie. Mój pomysł na brak wartości musi się zmienić. – Nishanth
@ e4e5f4 Prawdopodobnie nie wybrałbym takiego zachowania, gdybym projektował język. Ale tak właśnie jest. –
Warto zauważyć, że pomoc dla 'sum' stwierdza, że' na.rm = TRUE' usuwa zarówno 'NaN', jak i' NA' (podczas gdy '? Extremes') tego nie robi. – mnel