Мое лучшее предположение для того, что вы искали, - это решение plyr
с ddply
и использованием Year
вместо date
:
require(plyr)
ddply(df, "Number", function(datesort) datesort[order(datesort$Year),])
Но, учитывая, что этот постс тегом dplyr
, вот решение dplyr
:
require(tidyverse)
df %>% arrange(Number, Year)
Вывод обоих решений:
Number Year
<int> <date>
1 1 1999-07-01
2 1 2001-01-01
3 1 2001-02-01
4 1 2001-03-01
5 1 2002-03-01
6 2 1999-07-01
7 2 2001-01-01
8 2 2001-02-01
9 2 2001-03-01
10 2 2002-03-01
11 3 1999-07-01
12 3 2001-01-01
13 3 2001-02-01
14 3 2001-03-01
15 3 2002-03-01
Данные:
zz <-"Number Year
1 2001-01-01
1 2001-02-01
1 2002-03-01
1 2001-03-01
1 1999-07-01
2 2001-01-01
2 2001-02-01
2 2002-03-01
2 2001-03-01
2 1999-07-01
3 2001-01-01
3 2001-02-01
3 2002-03-01
3 2001-03-01
3 1999-07-01"
df <- read.table(text=zz, header=TRUE)