下の表を一人一行化したいのですが、苦戦しております。
ID=1の人:B02/B03に1、それ以外は0
ID=2の人:A01/B02に1、それ以外は0
となっていますが、これを列名を維持しつつIDごとに一行化するのがゴールです。なお、各セルに出現するは0と1のみで、同じIDであれば、同じ列には1は最大1箇所までです。また、IDにより行数(出現回数)が異なります。A/Bの添字は01〜99までとなっております。
この程度の数ですと例えばdplyrのgroup_byとmutateでごり押しできますが、実際の列数(A/Bに相当する箇所)が数百あるためfor loopやapply系など一通り試しましたが、力不足で今のところ解決できておりません。お知恵を拝借できると大変にありがたいです。よろしくお願いいたします。
使用環境:R (4.03)
現在の表の構成
|ID|A01|A02|A03|B01|B02|B03|
|:--|:--:|--:|
|1|0|0|0|0|0|0|
|1|0|0|0|0|1|0|
|1|0|0|0|0|0|0|
|1|0|0|0|0|0|1|
|1|0|0|0|0|0|0|
|1|0|0|0|0|0|0|
|2|1|0|0|0|0|0|
|2|0|0|0|0|0|0|
|2|0|0|0|0|1|0|
作りたい表
|ID|A01|A02|A03|B01|B02|B03|
|:--|:--:|--:|
|1|0|0|0|0|1|1|
|2|1|0|0|0|1|0|
回答1件
あなたの回答
tips
プレビュー