【发布时间】:2020-10-08 18:12:47
【问题描述】:
我有一个包含几列的数据框。根据“活动”列,我想删除特定值“pt”的整个连续运行,但仅当它们发生在“外部”运行之前或之后。
在下面的简化数据中,有一次运行的“活动”是“外部”,并且前后都有“pt”块。这两个“pt”块应该被删除。
activity dist
1 home 1
2 pt 2 # <- run of 'pt' before run of 'outside': remove
3 pt 3 # <-
4 pt 4 # <-
5 outside 5
6 outside 6
7 pt 7 # <- run of 'pt' after run of 'outside': remove
8 pt 8 # <-
9 work 9
10 pt 10
11 pt 11
12 home 12
因此,所需的输出是:
activity dist
1 home 1
2 outside 5
3 outside 6
4 work 9
5 pt 10
6 pt 11
7 home 12
如何做到这一点?
dput的数据:
structure(list(activity = c("home", "pt", "pt", "pt", "outside", "outside", "pt", "pt", "work", "pt", "pt", "home"),
dist = 1:12),
class = "data.frame", row.names = c(NA, -12L))
【问题讨论】:
-
看起来您刚刚删除了所有包含
activity_type=="pt interaction"?的条目? -
不,很抱歉没有指定足够的内容。也有“pt交互”出现在前面或后面的场合,比如“家”。因此,我想保留这些“pt互动”。