À la découverte des propriétés des vecteurs dans r

Les vecteurs ont une structure et un type, et R est un peu sensibles à la fois. Nourrir R le mauvais type de vecteur est comme essayer de faire de votre chat mange la nourriture pour chien: quelque chose va arriver, et les chances sont qu'il ne sera pas ce que vous espériez. Donc, vous feriez mieux de savoir quel type de vecteur que vous avez.

Sommaire

En regardant la structure d'un vecteur

R vous donne un moyen facile de regarder la structure d'un objet quelconque. Cette méthode est très pratique lorsque vous doutez de la forme du résultat d'une fonction ou d'un script que vous avez écrit. Pour prendre un coup d'oeil à l'intérieur des objets de recherche, utilisez le str () fonction.

La str () fonction vous donne le type et la structure de l'objet.

Jetez un oeil à le vecteur baskets.of.Granny:

> Str (baskets.of.Granny) num [1: 6] 12 4 5 6 9 3

R vous quelques choses dit ici:

  • Tout d'abord, il vous dit que ceci est un num (numérique) type de vecteur.

  • Suivant le type de vecteur, R vous donne les dimensions du vecteur. Cet exemple n'a qu'une seule dimension, et qui possède des indices dimension allant de 1 à 6.

  • Enfin, R vous donne les premières valeurs du vecteur. Dans cet exemple, le vecteur a seulement six valeurs, de sorte que vous voir tous.

Si vous voulez seulement savoir combien de temps un vecteur est, vous pouvez simplement utiliser la length () fonction, comme suit:

> Longueur (baskets.of.Granny) [1] 6



Vecteurs de R peuvent avoir d'autres types ainsi. Si vous regardez le vecteur auteurs, par exemple, vous voyez une petite différence:

> Auteurs lt; - c (“ ” ;, Andrie “ Joris ”)> str (auteurs) chr [1: 2] “ Andrie ” “ Joris ”

Encore une fois, vous obtenez les dimensions, la gamme des indices, et les valeurs. Mais cette fois, R vous indique le type de vecteur est chr (personnage).

Voici quelques vecteurs que vous voulez savoir:

  • Vecteurs numériques, contenant toutes sortes de chiffres.

  • Vecteurs entiers, contenant des valeurs entières. (Un vecteur entier est un type spécial de vecteur numérique.)

  • Vecteurs logiques, contenant des valeurs logiques (VRAI et ou FAUX).

  • Vecteurs de caractères, contenant le texte.

  • Vecteurs de datetime contenant les dates et heures dans différents formats.

  • Facteurs, un type spécial de vecteur de travailler avec les catégories.

Tous les types énumérés de vecteurs peuvent avoir des valeurs manquantes (N / A).

R établit des distinctions claires entre ces types de vecteurs, en partie pour des raisons de logique. La multiplication de deux mots, par exemple, n'a pas de sens.

Types de vecteurs de test

En dehors de la str () fonction, 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 baskets.of.Granny est un vecteur numérique, par exemple, utilisez le code suivant:

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

Vous pouvez penser que baskets.of.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. Une des belles choses sur R est que vous presque jamais à vous soucier de savoir si quelque chose est stocké comme nombre entier ou double!

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.


» » » » À la découverte des propriétés des vecteurs dans r