2017-07-31 82 views
0

我有iddate一个数据X和details列:如何在分组变量后从数据表中删除行?

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 

我想组数据x id的基础上,然后按升序对date进行排序,然后如果details列中存在“SQL”值,则删除同一id的以下行。一旦SQL阶段到达details变量,每个id应该没有记录。

我该如何在R中做到这一点?

+1

您可以加入一个[数据的可重复的例子?(https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – AaronT86

回答

0

使用dput将您的数据转换为我们可以使用的数据。以下是了解它的链接:https://gist.github.com/dsparks/3688652

+0

这确实没有回答这个问题。一旦你有足够的[声誉](https://stackoverflow.com/help/whats-reputation),你将可以[对任何帖子发表评论](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提问者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [来自评论](/ review/low-quality-posts/16888328) – kdopen

+0

当我评论时,数据处于不可用状态。提问者更新了这个问题(使数据更容易理解),使我的初步评论无关紧要。 –

0

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

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