Je fournis cet exemple de données pour faire passer ma question.Création d'une nouvelle variable à l'aide de deux colonnes lorsqu'elles remplissent certaines conditions à l'aide de R
aid=c(1,2,3,4,5,6,7,8,9,10)
foson=c(0,1,2,0,6,9,0,0,3,0)
fosof=c(0,0,2,3,0,0,0,5,0,0)
data=data.frame(aid,foson,fosof)
Maintenant, je dois créer une nouvelle variable (colonne) appelée données hist $ avec les conditions suivantes:
if foson==0 and fosof==0, then hist = 0;
if foson >=1 and fosof==0, then hist = 1;
if foson==0 and fosof>=1, then hist = 2; and
if foson>=1 and fosof>=1, then hist = 3
J'ai essayé d'utiliser la fonction "ifelse", mais est tombé à court.
J'espère que la question est assez claire.
Merci pour toute l'aide,
Bazon
Bonjour Ramnath, ça a marché! J'essaie juste de bien comprendre la ligne entière (syntaxe) ... surtout le bit * 2 à la fin de la ligne.Bazon – baz
Il utilise le fait que les valeurs logiques (TRUE, FALSE) peuvent aussi être utilisées numériquement (1,0). Il définit simplement tous les foson à 1 ou 0 et tous les fosof à 2 (1 * 2) ou 0 et les ajoute. C'était en fait une excellente solution ... quelque chose qu'un programmeur C penserait. – John