私はSOを検索しましたが、条件付きで行を削除することについて多くのQAがありますが、どのQAも私の問題に適合しません。
いくつかの被験者において、さまざまな時点でdata.frame
の変数などの縦方向の測定値が含まx
れています。一部の被験者はイベントを経験します(として示され、そうでない場合は一部で)。イニシャルを次のように減らしたいと思います。y
time
id
ev
1
0
time
data.frame
- 1)イベントを経験していない(わかりました、それは簡単です)が、含まれている主題のすべての行
- 2)イベントを経験した被験者の場合、イベントの直前のすべての行(つまり、その個人のイベントの時間よりも少ないすべての行)。
となることによって、
testdf<-data.frame(id=c(rep("A",4),rep("B",4),rep("C",4) ),
x=c(NA, NA, 1,2, 3, NA, NA, 1, 2, NA,NA, 5),
y=rev(c(NA, NA, 1,2, 3, NA, NA, 1, 2, NA,NA, 5)),
time=c(1,2,3,4,0.1,0.5,10,20,3,2,1,0.5),
ev=c(0,0,0,0,0,1,0,0,0,0,0,1))
に減少します
id x y time ev
1 A NA 5 1.0 0
2 A NA NA 2.0 0
3 A 1 NA 3.0 0
4 A 2 2 4.0 0
5 B 3 1 0.1 0
6 C 2 2 3.0 0
7 C NA 1 2.0 0
8 C NA NA 1.0 0