【发布时间】:2020-10-13 02:53:49
【问题描述】:
我想在分组和评估行条件后创建下面的output 数据框。当我对数据框进行分组和汇总时,我可以看到福特的三个实例可以概括为:福特、1 辆 SUV 和 2 辆卡车。同理,Honda可以概括为Honda、2 Sedan,而Toyota可以概括为Toyota、1 Electric、1 Truck。此外,还需要汇总分组后的实例数。所以就福特来说,它出现了 3 次,本田出现了 2 次,丰田出现了 2 次。 我只对 Make 出现多次的情况感兴趣,因此 Kia 和 Nissan 在此集合中不相关,也不会显示在输出中。我计划在数据框列表上使用它的一种函数形式。这不是 100% 必要的,因为如果它没有以那种格式呈现,我可以将它放入一个函数中。
在:
structure(list(Set = c(1, 1, 1, 1, 1, 1, 1, 1, 1), Make = structure(c(1L,
2L, 5L, 1L, 4L, 2L, 5L, 3L, 1L), .Label = c("Ford", "Honda",
"Kia", "Nissan", "Toyota"), class = "factor"), Line = structure(c(5L,
3L, 5L, 4L, 1L, 3L, 2L, 3L, 5L), .Label = c("CSUV", "Electric",
"Sedan", "SUV", "Truck"), class = "factor")), class = "data.frame", row.names = c(NA,
-9L))
>
Set Make Line
1 1 Ford Truck
2 1 Honda Sedan
3 1 Toyota Truck
4 1 Ford SUV
5 1 Nissan CSUV
6 1 Honda Sedan
7 1 Toyota Electric
8 1 Kia Sedan
9 1 Ford Truck
in %>% dplyr::group_by(Set,Make,Line) %>% dplyr::summarise(n = n()) %>% dplyr::arrange(Make)
# A tibble: 7 x 4
# Groups: Set, Make [5]
Set Make Line n
<dbl> <fct> <fct> <int>
1 1 Ford SUV 1
2 1 Ford Truck 2
3 1 Honda Sedan 2
4 1 Kia Sedan 1
5 1 Nissan CSUV 1
6 1 Toyota Electric 1
7 1 Toyota Truck 1
输出:
structure(list(Set = c(1, 1, 1), Groups = structure(1:3, .Label = c("Ford_1Suv_2Truck",
"Honda_1Sedan_1Van", "Toyota_1Electric_1Truck"), class = "factor"),
TotalInstances = structure(c(2L, 1L, 1L), .Label = c("2",
"3"), class = "factor")), class = "data.frame", row.names = c(NA,
-3L))
>
Set Groups Cases
1 1 Ford_1Suv_2Truck 3
2 1 Honda_2Sedan 2
3 1 Toyota_1Electric_1Truck 2
【问题讨论】: