【发布时间】:2017-04-29 02:14:19
【问题描述】:
考虑以下示例数据框:
> df
id name time
1 1 b 10
2 1 b 12
3 1 a 0
4 2 a 5
5 2 b 11
6 2 a 9
7 2 b 7
8 1 a 15
9 2 b 1
10 1 a 3
df = structure(list(id = c(1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L),
name = c("b", "b", "a", "a", "b", "a", "b", "a", "b", "a"
), time = c(10L, 12L, 0L, 5L, 11L, 9L, 7L, 15L, 1L, 3L)), .Names = c("id",
"name", "time"), row.names = c(NA, -10L), class = "data.frame")
我需要识别和记录所有序列seq <- c("a","b"),其中“a”基于“时间”列在“b”之前,对于每个 id。 “a”和“b”之间不允许有其他名称。实际序列长度至少为 5。
样本数据的预期结果是
a b
1 3 10
2 5 7
3 9 11
有一个类似的问题Finding rows in R dataframe where a column value follows a sequence。但是,我不清楚在我的情况下如何处理“id”列。是否可以使用“dplyr”解决问题?
【问题讨论】:
-
目前还不清楚你是如何达到你想要的结果的。