Innehållsförteckning:
- Använda oändligheten
- Inte ett nummer.
- Om du vill testa om ett värde är NA kan du använda isen. na () funktionen, enligt följande: >> är. na (x) [1] SANT
- FALSE
Video: Rethinking infidelity ... a talk for anyone who has ever loved | Esther Perel 2024
I vissa fall gör du inte har inte reella värden att beräkna med. I de flesta verkliga dataset i R saknas faktiskt åtminstone några värden. Dessutom har vissa beräkningar oändlighet (som att dividera med noll) eller kan inte utföra alls (som att ta logaritmen av ett negativt värde). Lyckligtvis kan R hantera alla dessa situationer.
Använda oändligheten
För att börja utforska oändligheten i R, se vad som händer när du försöker dela noll:
R berättar korrekt resultatet är Inf, eller oändlighet. Negativ oändlighet visas som -Inf. Du kan använd Inf precis som du använder ett reellt tal i beräkningarna: >> 4 - Inf [1] -Inf
För att kontrollera om ett värde är ändrat, använd funktionerna.finite () och är.ändlig (). Den första funktionen returnerar TRUE om siffran är ändlig, den andra returnerar TRUE om numret är oändligt.
R anser allt större än det största antalet en dator kan hålla för att vara oändlig - på de flesta maskiner, det är ungefär 1. 8 × 10
308. Denna definition av oändlighet kan leda till oväntade resultat, som visas i följande exempel: >> är. ändlig (10 ^ (305: 310)) [1] SANT SANT SANT SANT FALSKT FALSKT Vad betyder den här koden med nu? Se om du förstår häckningen och vektoriseringen i det här exemplet. Om du bryter upp linjen från de inre parentesen blir det förståeligt:
Du vet redan att 305: 310 ger dig en vektor som innehåller heltal från 305 till 310.
Alla operatörer är vektoriserade, så 10 ^ (305: 310) ger dig en vektor med resultaten från 10 till kraften 305, 306, 307, 308, 309 och 310.
Den vektorn ges som ett argument för is. ändlig(). Denna funktion berättar att de två sista resultaten - 10 ^ 309 och 10 ^ 310 - är oändliga för R.-
Hantering av odefinierade resultat
-
Din matte lärare förklarade förmodligen att om du delar upp ett verkligt tal genom oändlighet, får du noll. Men vad händer om du delar oändlighet genom oändlighet? >> Inf / Inf [1] NaN
-
Tja, R berättar att resultatet är NaN. Resultatet betyder helt enkelt
Inte ett nummer.
Det här är R: s sätt att berätta att resultatet av den beräkningen inte är definierad.
Det roliga är att R faktiskt anser att NaN är numerisk, så att du kan använda NaN i beräkningar. Resultatet av dessa beräkningar är alltid NaN, men som du ser här: >> NaN + 4 [1] NaN
Du kan testa om en beräkning resulterar i NaN genom att använda isen. nan () -funktionen. Observera att båda är. ändlig () och är. oändlig () returnera FALSE när du testar på ett NaN-värde. Hantera saknade värden Ett av de vanligaste problemen i statistiken är ofullständiga dataset. För att hantera saknade värden använder R det reserverade sökordet NA, vilket står för
Ej tillgängligt.
Du kan använda NA som ett giltigt värde, så du kan också ange det som ett värde: >> x <- nA
Du måste dock beakta att beräkningarna med ett värde av NA returnerar också vanligtvis NA som ett resultat: >> x + 4 [1] NA> log (x) [1] NA
Om du vill testa om ett värde är NA kan du använda isen. na () funktionen, enligt följande: >> är. na (x) [1] SANT
Observera att det är. na () -funktionen returnerar också TRUE om värdet är NaN. Funktionerna är. ändlig (), är. oändlig () och är. nan () returnerar FALSE för NA-värden. Beräkning av oändliga, odefinierade och saknade värden Följande tabell ger en översikt över resultaten från de ovan beskrivna funktionerna. Du är osannolikt att använda någon av dessa utom för är. na (), som du kanske använder ganska mycket!
Funktion
Inf
-INF
NaN
NA
är. ändlig ()
FALSE
FALSE
FALSE | FALSE | är. oändlig () | SANT | SANT |
---|---|---|---|---|
FALSE | FALSE | är. nan () | FALSE | FALSE |
SANT | FALSE | är. na () | FALSE | FALSE |
SANT | SANT |