0
votes

Recédez une variable à l'aide de data.Table package

Si je veux recoder une variable dans R en utilisant data.table , quelle est la syntaxe? J'ai vu des ans mais je ne les ai pas trouvés appropriés.

E.g. Si j'ai la variable appelée sexe

Je veux recoder le sexe 0 à inconnu, 1 à mâle, 2 à une femme: Voici comment j'ai essayé: xxx

mais je reçois une erreur


1 commentaires

Vous auriez un problème avec (non) -Capitalisation du sexe, même si vous avez la logique Ifelse correcte.


3 Réponses :


2
votes

Vous pouvez le faire de cette façon xxx

deux problèmes dans votre code:

  • Vous devez utiliser : = qui est le symbole d'attribution d'une colonne dans Data.Table
  • Vous ne pouvez avoir une alternative avec ifelse , vous avez donc besoin d'un autre ifelse pour le troisième cas: si le genre n'est pas 0, vous devez tester si le genre est 1 Séparer les cas masculins et féminins

1 commentaires

et aussi voyages [ sexe: = c ("inconnu", "mâle", "femme") [sexe + 1L]]



3
votes

Une fois que vous avez des données. Il serait alors plus efficace d'utiliser une stratégie de traduction vectorisée. La fonction correspondre fournit une méthode de création d'un "vecteur de sélection" pour choisir un élément à partir d'un ensemble de possibilités de caractères: xxx

pour ce cas spécifique, un plus simple la solution pourrait être (ht to @chinsoon ): xxx


2 commentaires

C'est un eqv très soigné de case_quive , j'ai réellement la recherche de cela.


Le commutateur est le plus proche que R est à une seule fonction pour faire "cas-quand" logique, mais à part du fait que je ne peux jamais me souvenir de son nom, il a plus d'inconvénient sa syntaxe changements selon que son premier argument est "caractère" ou numérique



2
votes

Mettez les règles dans une table et faites une jointure de mise à jour: xxx


0 commentaires