【发布时间】:2017-09-19 12:30:23
【问题描述】:
考虑df1:
df <- data.frame(time = c(1,2,3,4,5,6,7,8,9,10), marker = c(NA,NA,NA,"stop",NA,NA,NA,"start",NA,NA), behaviour = c("Rest","Rest","Rest","Rest","Awake","Awake","Awake","Awake","Awake","Rest"))
time marker behaviour
1 1 <NA> Rest
2 2 <NA> Rest
3 3 <NA> Rest
4 4 stop Rest
5 5 <NA> Awake
6 6 <NA> Awake
7 7 <NA> Awake
8 8 start Awake
9 9 <NA> Awake
10 10 <NA> Rest
我想根据列 markers 对数据进行子集化,并且不包括元素“stop”和“start”之间的数据,以便 df 看起来像这样:
time marker behaviour
1 <NA> Rest
2 <NA> Rest
3 <NA> Rest
4 stop Rest
8 start Awake
9 <NA> Awake
10 <NA> Rest
【问题讨论】:
-
试试
i1 <- with(df, which(marker %in% c("stop", "start")));df[-((i1[1]+1):(i1[2]-1)),] -
是的,这是一种享受,谢谢 akrun!