如何在对变量进行分组后从数据表中删除行?

时间:2017-07-31 16:46:50

标签: r

我有一个数据x包含iddatedetails列:

id date                 details
1  28-07-2017 20:01:30  NA
2  28-07-2017 18:01:30  NA
1  28-07-2017 22:02:20  SQL
2  28-07-2017 19:01:30  SQL
1  29-07-2017 22:20:00  NA
3  30-07-2017 18:01:30  NA
3  31-07-2017 18:01:30  SQL
4  28-07-2017 18:01:30  NA

我希望我的数据看起来像这样:

id date                 details
1  28-07-2017 20:01:30  NA
1  28-07-2017 22:02:20  SQL
2  28-07-2017 18:01:30  NA
2  28-07-2017 19:01:30  SQL
3  30-07-2017 18:01:30  NA
3  31-07-2017 18:01:30  SQL
4  28-07-2017 18:01:30  NA

我希望在id的基础上对数据x进行分组,然后按升序排序date,然后如果有" SQL" details列中的值然后删除相同id的以下行。一旦SQL阶段到达id变量,每个details都不应该有记录。

我怎样才能在R?

中这样做

2 个答案:

答案 0 :(得分:0)

使用dput将您的数据转换为我们可以使用的内容。这是一个理解它的链接:https://gist.github.com/dsparks/3688652

答案 1 :(得分:0)

dplyr包与magrittr一起使用。这是一个快速的刺。

library("dplyr")
library("magrittr")
newdata <- olddata %>% group_by(id) %>% arrange (date) %>% filter(details !="SQL")