Comment tester les types de vecteur de R

R contient un ensemble de fonctions qui vous permettent de tester pour le type d'un vecteur. Toutes ces fonctions ont la même syntaxe: est, un point, puis le nom du type.

Vous pouvez tester si un vecteur est de type foo en utilisant le is.foo () fonction. Ce test fonctionne pour tous les types de Vector- suffit de remplacer foo avec le type que vous souhaitez vérifier.

Pour tester si paniers.de.granny est un vecteur numérique, par exemple, utilisez le code suivant:

> Is.numeric (baskets.of.Granny) [1] TRUE



Vous pouvez penser que paniers.de.granny est un vecteur d'entiers, afin de vérifier, comme suit:

> Is.integer (baskets.of.Granny) [1] FAUX

R désaccord avec le professeur de mathématiques ici. Entier a une signification différente pour R que ce qu'il a pour nous. Le résultat de is.integer () est pas de la valeur, mais sur la façon dont la valeur est stockée dans la mémoire.

R dispose de deux modes principaux pour le stockage des numéros. Le mode standard est double. Dans ce mode, chaque numéro utilise 64 bits de mémoire. Le nombre est également stocké en trois parties. Un bit indique le signe du nombre, 52 bits représentent la partie décimale du nombre, et les bits restants représentent l'exposant.

De cette façon, vous pouvez stocker des numéros aussi grands que 1,8 x 10308 en seulement 64 bits. La entier Mode ne prend que 32 bits de mémoire, et les chiffres sont représentés comme des entiers binaires dans la mémoire. Donc, le plus grand entier est d'environ 2,1 milliards de dollars, ou, plus exactement, 231 - 1. Voilà 31 bits pour représenter le nombre lui-même, 1 bit pour représenter le signe du nombre, et -1 parce que vous commencez à 0.

Vous devriez utiliser des entiers si vous voulez faire les calculs d'entiers exactes sur de petits nombres entiers ou si vous voulez économiser de la mémoire. Dans le cas contraire, le mode double fonctionne très bien.

Vous forcez R pour stocker un nombre aussi un nombre entier en ajoutant L après cela, comme dans l'exemple suivant:

> X lt; - c (4L, 6L)> is.integer (x) [1] TRUE

Quel que soit le mode est utilisé pour stocker la valeur, is.numeric () retours VRAI dans les deux cas.


» » » » Comment tester les types de vecteur de R