ECI*_*CII 6 conditional r dataframe
我已经搜索了SO,虽然有很多关于有条件删除行的QA但没有QA适合我的问题.
我有一个data.frame可变的含纵向测量x,y...,在各个时间点等time,在若干受试者id.一些受试者经历事件ev(表示为1,否则0在某些情况下time).我想将初始值减少data.frame到:
以便,
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))
Run Code Online (Sandbox Code Playgroud)
会减少到
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
Run Code Online (Sandbox Code Playgroud)
这是一个使用subsetand的解决方案ave:
subset(testdf, !ave(ev, id, FUN = cumsum))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1744 次 |
| 最近记录: |