最近は主に SAS で作業していますが、RI の知識を失いたくないので、自分が行った基本的なことを再現したいと考えています。私の SAS コードが完璧でない場合は、ご容赦ください。私は自宅に SAS を持っていないので、記憶からこれを行っています。
SASには、おおよそ次の例のようなデータセットがあります(.はSASのNAに相当します)
A B
1 1
1 3
0 .
0 1
1 0
0 0
上記のデータセットが work.foo の場合、次のようなことができます。
/* 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;
そして、私は次のようなものを得るでしょう
A B C
1 1 3
1 3 3
0 . .
0 1 1
1 0 4
0 0 2
次に、C で並べ替えを実行し、C を使用してさまざまな操作を実行して、4 つのサブグループを作成できます。たとえば、各グループの平均を取得できます
proc means noprint data =work.bar;
by c;
var a b;
output out = work.means mean(a b) = a b;
run;
そして、work.means と呼ばれるグループごとに変数のデータを取得します。次のようなものです。
C A B
1 0 1
2 0 0
3 2 2
4 1 0
も取れると思います。行、しかし私は私の目的のためにそれを気にしません.
今Rで。適切に読み込まれた同じデータセットがありますが、最後に変数を追加する方法(CCなど)やサブグループで操作を行う方法(procのby ccコマンドなど)がわかりません意味)。また、変数の名前は順不同ではなく、変数が表すものに従っていることに注意してください。
誰かが上記の方法を教えてくれれば、それを私がする必要があることに一般化できると思います。