df=
ID Order_nr C D
1 1 N87.0 N87.0
2 1 N87.1 N87.1
3 1 N87.1 N87.1
4 1 N87.1 N87.1
4 2 N87.0 N87.1
5 1 D06 D06
6 1 N87.0 N87.0
7 1 N87.1 N87.1
7 2 N87.1 N87.1
7 3 N87.0 N87.1
7 4 N87.0 N87.1
7 5 N87.0 N87.1
7 6 N87.0 N87.1
8 1 N87.0 N87.0
より良い写真のために:
Order_nr と C を使用してすべての ID に対して一意に設定される列 D を作成する必要があります。このようなことを行いましたdf$D = df$C[Order_nr == 1]
ID 1 は 1 回しか表示されないため、選択するものはあまりありませんが、ID 7 は 6 回表示され、これらの 6 行すべてに N87.1 を追加する必要があります。 df$C[Order_nr == 1] => N87.1
私は多くの方法でこれをやろうとしましたが、失敗しました。これまでのところ、二重の for ループを使用してそれに近いことを行うことができましたが、それは完璧でも必要でもありませんでした。
私が今設定しているものの例:
foo <- function(df) {
C = df$C[df$Order_nr == 1] }
ddply( df, .(ID),mutate, foo)
しかし、それは何もしないようです。誰かが私を正しい方向に向けることができますか?
余談ですが。ddply が作成し、後で 1 つの data.frame にまとめるさまざまなサブセットを参照する特定の方法はありますか。10 の異なる ID があり、各 ID が 5 から 10 あるとします。ddply(df,.(ID),...) を使用した場合、ID = 1、2、... のみを持つサブセットを参照するにはどうすればよいですか?
EDIT Metrics コードは、 head() 関数を適用することで魔法を行いました
ddply(df1,.(ID),transform,E=head(C,1))