dplyr arrange - 按另一列对组进行排序,然后在每个组内进行排序
dplyr arrange - sort groups by another column and then sort within each group
我有如下数据框
Customer OrderNo Tot_Orders
aaa 2 3
aaa 1 3
aaa 3 3
bbb 1 1
ccc 1 2
ccc 2 2
我想按客户分组,然后按 Tot_Orders 排序,然后我想按每个客户组中的 OrderNo 排序以获得
Customer OrderNo Tot_Orders
bbb 1 1
ccc 1 2
ccc 2 2
aaa 1 3
aaa 2 3
aaa 3 3
如何使用 dplyr group_by 并安排相同的内容?我试过了
df %>% group_by(Customer) %>% arrange(Tot_Orders)
但这没有帮助。提前致谢!
你可以试试
library(dplyr)
df %>%
arrange(Tot_Orders, OrderNo) %>%
group_by(Customer)
# Customer OrderNo Tot_Orders
#1 ccc 1 1
#2 bbb 1 2
#3 bbb 2 2
#4 aaa 1 3
#5 aaa 2 3
#6 aaa 3 3
df1 %>%
arrange(Tot_Orders, OrderNo) %>%
group_by(Customer)
# Customer OrderNo Tot_Orders
#1 bbb 1 1
#2 ccc 1 2
#3 ccc 2 2
#4 aaa 1 3
#5 aaa 2 3
#6 aaa 3 3
数据
df <- structure(list(Customer = c("aaa", "aaa", "aaa", "bbb", "bbb",
"ccc"), OrderNo = c(2L, 1L, 3L, 2L, 1L, 1L), Tot_Orders = c(3L,
3L, 3L, 2L, 2L, 1L)), .Names = c("Customer", "OrderNo", "Tot_Orders"
), class = "data.frame", row.names = c(NA, -6L))
df1 <- structure(list(Customer = c("aaa", "aaa", "aaa", "bbb", "ccc",
"ccc"), OrderNo = c(2L, 1L, 3L, 1L, 1L, 2L), Tot_Orders = c(3L,
3L, 3L, 1L, 2L, 2L)), .Names = c("Customer", "OrderNo", "Tot_Orders"
), class = "data.frame", row.names = c(NA, -6L))
我有如下数据框
Customer OrderNo Tot_Orders
aaa 2 3
aaa 1 3
aaa 3 3
bbb 1 1
ccc 1 2
ccc 2 2
我想按客户分组,然后按 Tot_Orders 排序,然后我想按每个客户组中的 OrderNo 排序以获得
Customer OrderNo Tot_Orders
bbb 1 1
ccc 1 2
ccc 2 2
aaa 1 3
aaa 2 3
aaa 3 3
如何使用 dplyr group_by 并安排相同的内容?我试过了
df %>% group_by(Customer) %>% arrange(Tot_Orders)
但这没有帮助。提前致谢!
你可以试试
library(dplyr)
df %>%
arrange(Tot_Orders, OrderNo) %>%
group_by(Customer)
# Customer OrderNo Tot_Orders
#1 ccc 1 1
#2 bbb 1 2
#3 bbb 2 2
#4 aaa 1 3
#5 aaa 2 3
#6 aaa 3 3
df1 %>%
arrange(Tot_Orders, OrderNo) %>%
group_by(Customer)
# Customer OrderNo Tot_Orders
#1 bbb 1 1
#2 ccc 1 2
#3 ccc 2 2
#4 aaa 1 3
#5 aaa 2 3
#6 aaa 3 3
数据
df <- structure(list(Customer = c("aaa", "aaa", "aaa", "bbb", "bbb",
"ccc"), OrderNo = c(2L, 1L, 3L, 2L, 1L, 1L), Tot_Orders = c(3L,
3L, 3L, 2L, 2L, 1L)), .Names = c("Customer", "OrderNo", "Tot_Orders"
), class = "data.frame", row.names = c(NA, -6L))
df1 <- structure(list(Customer = c("aaa", "aaa", "aaa", "bbb", "ccc",
"ccc"), OrderNo = c(2L, 1L, 3L, 1L, 1L, 2L), Tot_Orders = c(3L,
3L, 3L, 1L, 2L, 2L)), .Names = c("Customer", "OrderNo", "Tot_Orders"
), class = "data.frame", row.names = c(NA, -6L))