Comment travailler avec des tables de consultation à r

Parfois, faire une fusion complète des données en R est pas exactement ce que vous voulez. Dans ces cas, il peut être plus approprié pour correspondre à des valeurs dans une table de consultation. Pour ce faire, vous pouvez utiliser la rencontre()

Sommaire

ou %dans% fonction.

Comment trouver un match

La rencontre() fonction renvoie les postes correspondants de deux vecteurs ou, plus précisément, les positions des premiers matches de un vecteur dans le second vecteur. Par exemple, pour trouver les grands États se produisent aussi dans la trame de données cold.states, vous pouvez faire ce qui suit:

> Index lt; - Match (cold.states $ Nom, large.states $ Nom)> index [1] 1 4 5 NA NA NA NA 6 NA NA NA

Comme vous le voyez, le résultat est un vecteur qui indique resultat trouve à des positions un, quatre, cinq et six. Vous pouvez utiliser ce résultat comme un indice pour trouver tous les grands États qui sont également des Etats froides.

Gardez à l'esprit que vous devez retirer le N / A les valeurs premières, en utilisant na.omit ():




> Large.states [na.omit (index),] Nom Area2 Alaska 5664326 Colorado 10376626 14558728 Montana Nevada 109889

Comment donner un sens% en%

Une alternative très pratique pour rencontre() est la fonction %dans%, qui retourne un vecteur logique indiquant si il ya un match.

La %dans% fonction est un type spécial de la fonction appelée opérateur binaire. Cela signifie que vous l'utilisez en le plaçant entre deux vecteurs, contrairement à la plupart des autres fonctions où les arguments sont entre parenthèses:

> Index lt; - cold.states $ Nom% en% large.states $ Nom> index [1] VRAI FAUX FAUX VRAI FAUX FAUX FAUX FAUX FAUX

Si vous comparez cela à la suite de rencontre(), vous voyez que vous avez un VRAI valeur pour chaque valeur non manquante dans le résultat de rencontre(). Ou, pour le mettre dans le code de R, l'opérateur %dans% fait la même chose que le code suivant:

>! Is.na (Match (cold.states $ Nom, large.states $ Nom)) [1] VRAI FAUX FAUX VRAI FAUX FAUX FAUX FAUX FAUX

La rencontre() fonction renvoie les indices des matches de la deuxième argument en faveur des valeurs de la premier argument. D'autre part, %dans% retours VRAI pour chaque valeur dans la premier l'argument qui correspond à une valeur dans la deuxième argument. L'ordre des arguments est important ici.

Car %dans% renvoie un vecteur logique, vous pouvez l'utiliser directement à des valeurs de l'indice dans un vecteur.

> Cold.states [index,] Nom Frost2 Alaska 1526 Colorado 16626 Montana 15528 Nevada 188

Comme mentionné précédemment, la %dans% fonction est un exemple d'un opérateur binaire à R. Cela signifie que la fonction est utilisée en la plaçant entre deux valeurs, comme pour d'autres opérateurs, tels que + (plus) et - (moins). En même temps, %dans% est dans opérateur infixe. Un opérateur infixe en R est identifiable par les cent signes autour du nom de la fonction.

Si vous voulez savoir comment %dans% est défini, regardez la section des détails de sa page d'aide. Mais notez que vous devez placer des guillemets autour du nom de fonction pour obtenir la page d'aide, comme ceci: ?"%dans%".


» » » » Comment travailler avec des tables de consultation à r