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

as.numeric

Vektory typu numeric

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

Popis

Vytváří nebo konvertuje objekty typu "numeric". is.numeric je obecnější test objektu, jestli jej lze interpretovat jako čísla.

Použití

numeric(length = 0)
as.numeric(x, ...)
is.numeric(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

numeric totožný s double (a real). Vytvoří vektor specifikované délky s přesností typu double. Všechny elementy vektoru se rovnají 0.

as.numeric je generická funkce, ale metody S3 musí být psány pro as.double. Je totožná s as.double.

is.numeric je interní generická primitivní funkce: můžete napsat metody pro zpracování specifických tříd objektů, viz InternalMethods. Není to stejné jako is.double. Faktory jsou zpracovány výchozí metodou a existují metody pro třídy "Date", "POSIXt a "difftime" (všechny vrátí false). Metody pro is.numeric by měli vrátit true pouze v případě, že základní typ třídy je double nebo integer a hodnoty lze rozumně považovat za číselné (např. aritmetika na nich má smysl a porovnání by mělo být provedeno pomocí základního typu).

Hodnota

pro numeric a as.numeric viz double.

Výchozí metoda pro is.numeric vrací TRUE pokud je její argument v režimu mode "numeric" (type "double" nebo type "integer") a ne faktor a FALSE jinak. To je, is.integer(x) || is.double(x), nebo (mode(x) == "numeric") && !is.factor(x).

Varování

Pokud je x factor, as.numeric vrátí jeho číselnou (integer) reprezentaci, která je často nesmyslná, protože nemusí odpovídat faktorovým úrovním, viz část ‘Varování’ ve factor (a druhý příklad níže).

S4 metody

as.numeric a is.numeric jsou vnitřně S4 generika, a proto je možné pro ně nastavit metody via setMethod.

Aby bylo zajištěno, že as.numeric a as.double zůstanou totožné, mohou být metody S4 nastaveny pouze pro as.numeric.

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.

double, integer, storage.mode.

Příklady

as.numeric(c("-.1"," 2.7 ","B"))
# (-0.1, 2.7, NA) + warning as.numeric(factor(5:10))
# co jste neočakávali f <- factor(1:5)
## co typicky myslíte a chcete: as.numeric(as.character(f))
## stejné, značně (pro dlouhé faktory) efektivnější: as.numeric(levels(f))[f]

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