我尝试在R中通过求和进行列组合。它需要分析仓库中的关联顺序。
例如
原始表
Order | SKU | QTY
\#1 | Banana | 1
\#1 | Apple | 2
\#1 | Pear | 1
\#1 | Cherry | 2
\#2 | Banana | 4
\#2 | Apple | 1
\#2 | Grape | 1
\#3 | Banana | 2
\#3 | Pear | 1
按出站频率转换表格
Order | Banana | Apple | Pear | Cherry | Grape
\#1 | 1 | 1 | 1 | 1 |
\#2 | 1 | 1 | | | 1
\#3 | 1 | | 1 | |
以最高 SKU 配对
SKU1 | SKU2 | Free
Banana | Apple | 2
Banana | Pear | 2
Banana | Cherry| 1
Banana | Grape | 1
Apple | pear | 1
Apple |Cherry | 1
Apple |Grape | 1
Pear |Cherry | 1
香蕉对需要集中批量或存放在仓库。
我是循环的初学者,尝试在 purrr、文本、成对的任何其他内容中进行映射。我找不到信息
我想知道如何解决这一对
我通常处理超过10,000个SKU
Purrr,成对的,无论我不介意的方法,我想解决这个矩阵
您可以尝试
crossprod
+ xtabs
+ as.data.frame.table
> tbl <- crossprod(!!xtabs(QTY ~ ., df))
> tbl[upper.tri(tbl, TRUE)] <- NA
> na.omit(as.data.frame.table(tbl))
SKU SKU.1 Freq
2 Banana Apple 2
3 Cherry Apple 1
4 Grape Apple 1
5 Pear Apple 1
8 Cherry Banana 1
9 Grape Banana 1
10 Pear Banana 2
14 Grape Cherry 0
15 Pear Cherry 1
20 Pear Grape 0
或者如果您想删除
0
共现,您可以尝试
> tbl <- crossprod(!!xtabs(QTY ~ ., df))
> tbl[upper.tri(tbl, TRUE) | tbl < 1] <- NA
> na.omit(as.data.frame.table(tbl))
SKU SKU.1 Freq
2 Banana Apple 2
3 Cherry Apple 1
4 Grape Apple 1
5 Pear Apple 1
8 Cherry Banana 1
9 Grape Banana 1
10 Pear Banana 2
15 Pear Cherry 1
df <- structure(list(Order = c(1, 1, 1, 1, 2, 2, 2, 3, 3), SKU = c(" Banana ",
" Apple ", " Pear ", " Cherry ", " Banana ", " Apple ", " Grape ",
" Banana ", " Pear "), QTY = c(1L, 2L, 1L, 2L, 4L, 1L, 1L,
2L, 1L)), class = "data.frame", row.names = c(NA, -9L))