gpt4 book ai didi

r - 如何从多个向量创建唯一的组合列表?

转载 作者:行者123 更新时间:2023-12-04 09:23:47 24 4
gpt4 key购买 nike

我想确定总共使用 2 种不同的配料可以在不同的面包上订购多少种披萨。但我想创建一个独特组合的列表。

我使用了布置包中的combinations() 函数来创建独特组合的列表,并且我已经为浇头做到了这一点。我正在努力弄清楚如何加入外壳。

toppings <- c("Pepperoni", "Canadian Bacon", "Sausage", "Italian Sausage")
crust <- c("Thick", "Thin", "Cracker")
toppingcombo <- combinations(toppings)
pizza <- arrangements::combinations(c(crust, toppings), 3)

最后一行代码将其显示为结果。

     [,1]    [,2]            
[1,] "Thick" "Thin"
[2,] "Thick" "Tuscano"
[3,] "Thick" "Pepperoni"

我希望显示结果:

     [,1]    [,2]        [,3]            
[1,] "Thick" "Sausage" "Bacon"
[2,] "Thick" "Pepperoni" "Sausage

但请避免创建重复项,例如“Thick/Bacon/Sausage”,因为这与第 [1,] 行相同,但浇头的顺序不同。

最佳答案

我对您的输入数据进行了一些修改以实现您想要的目标。

数据

toppings <- c("Pepperoni", "Canadian Bacon", "Sausage", "Italian Sausage")
crust <- data.frame(crust = c("Thick", "Thin", "Cracker"))

library(arrangements)
topping_combo <- as.data.frame(combinations(toppings, k = 2, n = length(toppings)))
colnames(topping_combo) <- c("topping_1", "topping_2")

所以现在我们有两个数据框: crust 只有一列和三行,每种类型的外壳一个; topping_combo 是一个 6x2 的数据帧,其中包含所有可能的 2 种配料组合。

代码

以下代码提供了一种可能的解决方案,可以根据您的要求创建一个数据框,其中每一行都是一种披萨。我们使用 tidyr 包中的 crossing 函数。

library(tidyr)
crossing(crust, topping_combo)

输出

     crust      topping_1       topping_2
1 Thick Pepperoni Canadian Bacon
2 Thick Pepperoni Sausage
3 Thick Pepperoni Italian Sausage
4 Thick Canadian Bacon Sausage
5 Thick Canadian Bacon Italian Sausage
6 Thick Sausage Italian Sausage
7 Thin Pepperoni Canadian Bacon
8 Thin Pepperoni Sausage
9 Thin Pepperoni Italian Sausage
10 Thin Canadian Bacon Sausage
11 Thin Canadian Bacon Italian Sausage
12 Thin Sausage Italian Sausage
13 Cracker Pepperoni Canadian Bacon
14 Cracker Pepperoni Sausage
15 Cracker Pepperoni Italian Sausage
16 Cracker Canadian Bacon Sausage
17 Cracker Canadian Bacon Italian Sausage
18 Cracker Sausage Italian Sausage

关于r - 如何从多个向量创建唯一的组合列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54241882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com