Рассмотрим следующие примеры
PSE YEAR ID
1 2014 3
3 2007 1
3 2004 4
3 2002 4
1 2013 3
3 2006 1
2 2016 2
2 2017 2
1 2015 3
3 2003 4
Edit:
Неправильный
Если я использую dplyr arrange(PSE, YEAR,ID)
, я получаю
Исправлено:
Если я использую dplyr arrange(PSE,ID, YEAR)
, я получаю
PSE YEAR ID
1 2013 3
1 2014 3
1 2015 3
2 2016 2
2 2017 2
3 2006 1
3 2007 1
3 2002 4
3 2003 4
3 2004 4
Что я хочу, это
PSE YEAR ID
1 2013 3
1 2014 3
1 2015 3
2 2016 2
2 2017 2
3 2002 4
3 2003 4
3 2004 4
3 2006 1
3 2007 1
Возможно, что-то простое, но почему-то я не могу правильно отсортировать это.
Ммм, как-то сейчас это работает, но не на моих исходных данных. Вот небольшая выборка данных, где возникает ошибка.
structure(list(PSE = c(11280282, 11280282, 11280282, 11280282,
11630646, 11630646, 11630646, 11630646, 11630646, 11630646, 11630646,
11630646, 11630646, 12106438, 12106438, 12106438, 12106438, 12106438,
12106438, 12106438, 12106438, 12106438, 12106438, 12106438, 12106438,
12106438, 12106438, 12106438, 12106438, 12106438, 12106438, 12106438,
12106438, 12106438, 12106438, 12106438, 12106438, 12106438, 12106438,
12106438, 12106438, 12106438, 12335813, 12335813, 12335813, 12335813,
12475347, 12475347, 12475347, 12475347, 12475347, 12475347, 12475347,
12475347, 12475347, 12475347, 12475347, 12475347, 12475347, 12475347,
12475347, 12475347, 12475347, 12475347, 12475347, 12475347, 12475347,
12475347, 12912674, 12912674, 12912674, 12912674), YEAR = c(20152,
20161, 20162, 20171, 20101, 20102, 20111, 20112, 20121, 20122,
20131, 20132, 20141, 20042, 20042, 20051, 20051, 20052, 20052,
20061, 20061, 20062, 20062, 20071, 20071, 20072, 20072, 20081,
20081, 20082, 20082, 20091, 20092, 20101, 20101, 20101, 20102,
20102, 20102, 20111, 20111, 20111, 20152, 20171, 20171, 20171,
20102, 20102, 20111, 20111, 20112, 20112, 20121, 20121, 20122,
20122, 20131, 20131, 20132, 20132, 20141, 20141, 20142, 20142,
20162, 20162, 20171, 20171, 20022, 20031, 20032, 20041), ID = c(8171,
8171, 8171, 8171, 4801, 4801, 4801, 4801, 4801, 4801, 4801, 4801,
4801, 1646, 1758, 1646, 1758, 1646, 1758, 1646, 1758, 1646, 1758,
1646, 1758, -1, 3465, -1, 3465, -1, 3465, 3465, 3465, 3465, 4712,
4770, 3465, 4712, 4770, 3465, 4712, 4770, 8217, 9236, 9237, 9238,
4947, 4952, 4947, 4952, 5433, 5568, 5433, 5568, 5433, 5568, 5433,
5568, 5433, 5568, 5433, 5568, 5433, 5568, 6797, 6813, 7123, 7215,
474, 474, 474, 474)), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -72L), .Names = c("PSE", "YEAR", "ID"))
PSE 12106438 проблематично.
Вот что я получаю:
12106438 20072 -1
12106438 20081 -1
12106438 20082 -1
12106438 20042 1646
12106438 20051 1646
12106438 20052 1646
12106438 20061 1646
12106438 20062 1646
12106438 20071 1646
12106438 20042 1758
12106438 20051 1758
12106438 20052 1758
12106438 20061 1758
12106438 20062 1758
12106438 20071 1758
12106438 20072 3465
12106438 20081 3465
12106438 20082 3465
12106438 20091 3465
12106438 20092 3465
12106438 20101 3465
12106438 20102 3465
12106438 20111 3465
12106438 20101 4712
12106438 20102 4712
12106438 20111 4712
12106438 20101 4770
12106438 20102 4770
12106438 20111 4770
То, что я хочу, это
12106438 20042 1646
12106438 20051 1646
12106438 20052 1646
12106438 20061 1646
12106438 20062 1646
12106438 20071 1646
12106438 20042 1758
12106438 20051 1758
12106438 20052 1758
12106438 20061 1758
12106438 20062 1758
12106438 20071 1758
12106438 20072 -1
12106438 20081 -1
12106438 20082 -1
12106438 20072 3465
12106438 20081 3465
12106438 20082 3465
12106438 20091 3465
12106438 20092 3465
12106438 20101 3465
12106438 20102 3465
12106438 20111 3465
12106438 20101 4712
12106438 20102 4712
12106438 20111 4712
12106438 20101 4770
12106438 20102 4770
12106438 20111 4770