Vorrei sapere perché alcune lingue come R hanno sia NA che NaN. Quali sono le differenze o sono ugualmente uguali? È davvero necessario avere NA?
Vorrei sapere perché alcune lingue come R hanno sia NA che NaN. Quali sono le differenze o sono ugualmente uguali? È davvero necessario avere NA?
Risposte:
? is.nan
? is.na
?N / A
? NaN
Dovrebbe rispondere alla tua domanda.
Ma, in breve:
NaN significa
NA viene generalmente interpretato come un valore mancante e ha varie forme: NA_integer_, NA_real_, ecc.
is.na()
ritorni TRUE
sia per NA che per NaN, che differisce da is.nan()
es . is.na(c(0/0,NA))
Vs. is.nan(c(0/0,NA))
NA è per dati mancanti. NaN, come diceva JM, è a scopo aritmetico. NaN è solitamente il prodotto di alcune operazioni aritmetiche, come ad esempio 0/0
. In genere NA viene dichiarato in anticipo o è un prodotto operativo quando si tenta di accedere a qualcosa che non è presente:
> a <- c(1,2)
> a[3]
[1] NA
Penso a NA che sta per 'Not Available', mentre NaN è 'Not a Number', sebbene questo sia più mnemonico che di spiegazione. A proposito, non conosco nessun linguaggio diverso da R (forse Splus?) Che ha entrambi. Matlab, ad esempio, ha solo NaN.
NA indica che l'errore era già presente quando hai importato il foglio di calcolo in R. NaN indica che hai causato l'errore dopo aver importato i dati. È il terzo tipo di errore che è davvero difficile da rilevare.
:-)
NA = Non disponibile
NaN = Non un numero
Penso che una volta espansi gli acronimi, dovrebbe essere autoesplicativo.