2016-12-01 102 views
-1

我有这样的数据列表:如何用数据子集数据?

 name     Date 
MANHATTAN STRIKER (V141) 30/11/2016 
MANHATTAN STRIKER (V141) 16/11/2016 
MANHATTAN STRIKER (V141) 26/10/2016 
MANHATTAN STRIKER (V141) 28/9/2016 
YOURTHEWONFORME  (T258) 30/11/2016 
YOURTHEWONFORME  (T258) 9/11/2016 
YOURTHEWONFORME  (T258) 26/10/2016 
FOREVER FUN   (S130) 30/11/2016 
FOREVER FUN   (S130) 16/11/2016 
FOREVER FUN   (S130) 26/10/2016 
FOREVER FUN   (S130) 12/10/2016 

如何我写R中的脚本只是列出每个名字,在每个日期最新的两个日期? 造成这样的:

  name     Date 
    MANHATTAN STRIKER (V141) 30/11/2016 
    MANHATTAN STRIKER (V141) 16/11/2016 
    YOURTHEWONFORME  (T258) 30/11/2016 
    YOURTHEWONFORME  (T258) 9/11/2016 
    FOREVER FUN   (S130) 30/11/2016 
    FOREVER FUN   (S130) 16/11/2016 
+1

尝试'库(dplyr); df1%>%group_by(name)%>%arrange(desc(as.Date(Date,“%d /%m /%Y”)))%>%slice(1:2)' – akrun

+0

'dplyr :: top_n (Date,asDate(Date,'%d /%m /%Y'))%>%group_by(name)%>%top_n(2,Date)''方便:'df% – alistaire

回答

-1

我们可以使用dplyr。通过“名称”分组后,“日期”转换为Date类,arrange降序排列,并slice前两排

library(dplyr) 
df1 %>% 
    group_by(name) %>% 
    arrange(desc(as.Date(Date, "%d/%m/%Y"))) %>% 
    slice(1:2)