論文の一部としていくつかのデータを分析しようとしていますが、コードを開発することは不可能であることが証明されています (私にとって)
コードを開発するために、はるかに大きなデータのサブセットを使用しています。(データフレームのリンク方法がわからない)
head(df)
well x y time dist speed grp
1 1 117 127 15.265 0.000000 0.00000000 1
2 1 118 127 15.303 1.000000 0.06534666 1
3 1 118 127 15.339 0.000000 0.00000000 1
4 1 118 127 15.368 0.000000 0.00000000 1
5 1 119 129 15.403 2.236068 0.14517094 1
6 1 120 129 15.443 1.000000 0.06475426 1
tail(df)
well x y time dist speed grp
664074 24 519 345 6957.419 0.000000 0.0000000000 24
664075 24 519 345 6957.453 0.000000 0.0000000000 24
664076 24 519 345 6957.490 0.000000 0.0000000000 24
664077 24 519 345 6957.529 0.000000 0.0000000000 24
664078 24 518 345 6957.557 1.000000 0.0001437286 24
664079 24 517 344 6957.598 1.414214 0.0002032618 24
基本的にX
、Y
値は 24 ウェル プレートのものです。記録期間が完了すると、grp
値は N+1 ずつ増加します ( grp
/well
が同じ値で終了するのは偶然の一致です)。
各記録期間の後、記録が中断され、これが終了すると、記録が再開されます。現在、に設定したデータの欠損値を分析しようとしていますNA
。欠落している値を見つけるために、このコード (以下) を使用して MICE パッケージを使用しました。グループごとに、すべての座標ではwell
なく、MICEパッケージによって個別に分析されるようにします。X
Y
for (i in unique(df$well)){
w1 <- df[df$well==i,]
for (j in unique(w1$grp)){
w2 <- w1[w1$grp==j,]
temp_df <- mice(data = w2, m = 5, method = "rf", maxit = 5)
}
}
2 つのこと - まず、for ループが非常に遅く、スクリプトの速度を改善する方法がわかりません。私の最初の考えは、df に新しい列を作成することでした。これには&df$well
が組み込まれるため、値が変更されるたびに N+1 で満たされますが、これを生成する関数を思い付くことができませんでした。新しい列が生成されたら、上記の 2 つのループの代わりに 1 つの for ループを使用できます。これにより、速度が向上すると思いますか? 第二に、上記のスクリプトは「temp_df」を継続的に書き換えますが、追加する必要があります。検索結果から提案された「rbind」と「apply」を使用してみましたが、役に立ちませんでした。df$well
df$grp
これが比較的簡単に思える場合、または他の場所で回答されている場合はお詫び申し上げます。私が言ったように、私はRとコンピューティング言語全般に比較的慣れていません。