-1

私は生存分析のためにいくつかのデータをクリーニングしている最中であり、特定の被験者内の周囲の値に基づいて欠損データが補完されるようにしようとしています。参加者の最も近い前の値と最も近い後の値の平均を使用したいと思います。後続の値が存在しない場合は、後続の値が存在するまで繰り越された前の値を使用したいと思います。

私は問題をより小さく、より管理しやすい操作とオブジェクトに分割しようとしてきましたが、私が解決策を続けていると、欠損値のすぐ上と下の行に基づいて条件付き書式を使用するようになり、率直に言って、私はこれを行う方法について少し途方に暮れています。私が使用したり、実験したりできる優れた手法を知っていると思われる場合、または解決策を探すときに使用できる優れた検索用語を知っていると思われる場合は、少しガイダンスをいただければ幸いです。

詳細は以下のとおりです。

#Fake dataset creation
id <- c(1,1,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4,4,4,4)
time <-c(0,1,2,3,4,5,6,0,1,2,3,4,5,6,0,1,2,3,4,5,6,0,1,2,3,4,5,6)
ss <- c(2,2,4,3,NA,0,0,1,4,0,NA,0,0,0,4,2,1,3,3,2,NA,3,4,3,NA,NA,0,0)
mydat <- data.frame(id, time, ss)

*太字と下線の文字は、上記のデータセットからの変更を表します

ここでの目標は、ID #1 (変数 ss) の NA 値を次のように取得する方法を見つけることです: 2,2,4,3, 1.5 ,0,0

ID# 2 (変数 ss) は次のようになります: 1,4,0​​, 0 ,0,0,0

ID #3 (変数 ss) は次のようになります: 4,2,1,3,3,2,NA (NA の行は最終的に削除されるため変更なし)

ID #4 (変数 ss) は次のようになります: 3,4,3, 3 , 1.5 ,0,0 (これには複数の変更が必要で、取り組むのが最も難しいと思います)。

4

1 に答える 1