创建新列,该列对前面的两个列排序



我希望创建一个基于其他两个列的排序的新列,最好使用Tidyverse函数,但欢迎任何建议。我有一个大约有1300个条目和几列的表,但我的数据样本看起来像这样:

tbody> <<tr>2145535560
人数 总排序 TotalQuantile
1211
1921
32
52
53
63
74
7584
library(dplyr)

df <-
structure(list(
Number.of.people = c(12L, 19L, 21L, 45L, 53L, 55L, 60L, 75L),
TotalOrder = c(1L, 2L, 3L, 5L, 5L, 6L, 7L, 8L),
TotalQuantile = c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L)),
row.names = c(NA,-8L), class = c("tbl_df", "tbl", "data.frame"))
df %>% 
group_by(TotalQuantile) %>% 
mutate(NewOrder = row_number())
# A tibble: 8 x 4
# Groups:   TotalQuantile [4]
Number.of.people TotalOrder TotalQuantile NewOrder
<int>      <int>         <int>    <int>
1               12          1             1        1
2               19          2             1        2
3               21          3             2        1
4               45          5             2        2
5               53          5             3        1
6               55          6             3        2
7               60          7             4        1
8               75          8             4        2

最新更新