Slovník | Vyhledávání | Mapa webu
 
Základy informatiky pro biologyCvičebnice jazyka R Dokumentace k základním funkcím as.double

as.double

Vektory s přesností typu double

double {base} Dokumentace R v češtině

Popis

Vytvořit, skonvertovat na, nebo otestovat, jestli to je vektor s přesností typu double.

Použití

double(length = 0)
as.double(x, ...)
is.double(x)

single(length = 0)
as.single(x, ...)

Argumenty

length

Nezáporný integer specifikující požadovanou délku. Hodnoty typu double budou konvertovány na integer: poskytnutí argumentu délky jiné než jedna je chyba.

x

objekt, který má být konvertován nebo testován.

...

další argumenty přenesené na jiné metody nebo z jiných metod.

Detaily

double vytvoří vektor specifikované délky s přesností typu double. Všechny elementy vektoru se rovnají 0. Je totožný s typem numeric.

as.double je generická funkce. Je totožná s as.numeric. Metody by měly vrátit objekt základního typu "double".

is.double je test typu double.

R nemá datový typ s přesností "single". Všechna reálná čísla jsou uložena ve formátu double. Funkce as.single a single jsou totožné s as.double a double, kromě toho, že nastavují atribut Csingle, který se používá v rozhraní .C a .Fortran, a jsou určeny pouze pro použití v tomto kontextu.

Hodnota

double vytvoří vektor specifikované délky s přesností double. Všechny elementy vektoru se rovnají 0.

as.double se pokouší konvertovat jeho argument na typ double: tak jako as.vector zbavuje atributů včetně názvů. (Aby bylo zajištěno, že objekt je typu double bez odstranění atributů, použijte storage.mode.) Znakové řetězce, které obsahují volitelnou mezeru, po které následuje buď desítková reprezentace nebo hexadecimální reprezentace (začínající 0x nebo 0X) můžou být konvertovány, stejně jako zvláštní hodnoty jako například "NA", "NaN", "Inf" a "infinity", bez ohledu na případ.

as.double pro faktory produkuje kódy, které jsou podkladem faktorových úrovní, nikoliv numerické reprezentace štítků, viz také factor.

is.double vrací TRUE nebo FALSE v závislosti na tom, zda je jeho argument typu double anebo ne.

Hodnoty s přesností double

Všechny platformy R musí pracovat s hodnotami, které odpovídají standardu IEC 60559 (také známému jako IEEE 754). Tohle v podstatě pracuje s přesností 53 bitů a reprezentuje do téhle přesnosti rozsah absolutních hodnot od 2e-308 do 2e+308. Má také speciální hodnoty >NaN (mnoho z nich), plus a mínus nekonečno a plus a mínus nula (ačkoli R se chová jako by byli stejné). Existují také denormální(izované) (nebo subnormální) čísla s absolutními hodnotami nad nebo pod výše uvedeným rozsahem, ale jsou reprezentovány s menší přesností.

Viz .Machine pro přesné informace o těchto omezeních. Vezměte na vědomí, že to, jako jsou nakonec čísla s přesností double zpracovávány závisí nakonec na CPU/FPU a kompilátoru.

V dokumentu IEEE 754-2008/IEC60559:2011 se nazývá formát ‘binary64’.

Poznámka k názvům

Je historickou anomálií, že R má dva názvy pro své vektory s plovoucí desetinnou čárkou, double a numeric (a předtím real).

double je název typu. numeric je název mode a také implicitní třídy. Jako formální třídu S4 použijte "numeric".

Potenciální zmatek spočívá v tom, že R používal režim "numeric", když myslel ‘double nebo integer’, což je v rozporu s použitím S4. Tak is.numeric testuje režim, nikoliv třídu, ale as.numeric (který je totožný s as.double) konvertuje do třídy.

Reference

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

https://en.wikipedia.org/wiki/IEEE_754-1985, https://en.wikipedia.org/wiki/IEEE_754-2008, https://en.wikipedia.org/wiki/Double_precision, https://en.wikipedia.org/wiki/Denormal_number.

http://754r.ucbtest.org/ pro odkazy na informace o standardech.

Viz také

integer, numeric, storage.mode.

Příklady

is.double(1) all(double(3) == 0)

 
vytvořil Institut biostatistiky a analýz Lékařské fakulty Masarykovy univerzity