J'ai travaillé principalement dans SAS dernièrement, mais je ne veux pas perdre la familiarité avec le RI, j'aimerais répliquer quelque chose basique j'ai fait. Vous me pardonnerez si mon code SAS n'est pas parfait, je le fais de mémoire car je n'ai pas SAS à la maison.Travailler avec Data.frames dans R (Utiliser le code SAS pour décrire ce que je veux) r
SAS J'ai un ensemble de données qui est à peu près comme l'exemple suivant (. Est équivalent de NA SAS)
A B
1 1
1 3
0 .
0 1
1 0
0 0
Si l'ensemble de données ci-dessus a été work.foo alors que je pouvais faire quelque chose comme ce qui suit.
/* create work.bar from dataset work.foo */
data work.bar;
set work.foo;
/* generate a third variable and add it to work.bar */
if a = 0 and b ge 1 then c = 1;
if a = 0 and b = 0 then c = 2;
if a = 1 and b ge 1 then c = 3;
if a = 1 and b = 0 then c = 4;
run;
et je reçois quelque chose comme
A B C
1 1 3
1 3 3
0 . .
0 1 1
1 0 4
0 0 2
Et je pourrais puis trier proc par C, puis effectuer diverses opérations à l'aide de C pour créer 4 sous-groupes. Par exemple, je pourrais obtenir les moyens de chaque groupe avec
proc means noprint data =work.bar;
by c;
var a b;
output out = work.means mean(a b) = a b;
run;
et j'obtenir des données de variables par des groupes appelés work.means quelque chose comme:
C A B
1 0 1
2 0 0
3 2 2
4 1 0
Je pense que je peux aussi obtenir une . rangée, mais je m'en fous de mes fins. Maintenant dans R. J'ai le même ensemble de données qui a été lu correctement, mais je n'ai aucune idée comment ajouter une variable à la fin (comme CC) ou comment faire une opération sur un sous-groupe (comme le par cc commande dans proc signifie). Aussi, je devrais noter que mes variables ne sont pas nommées dans n'importe quel ordre, mais selon ce qu'elles représentent. Je pense que si quelqu'un peut me montrer comment faire ce qui précède, je peux le généraliser à ce que j'ai besoin de faire.