循环组合两列R中的总和

hsvhsicv  于 2023-10-13  发布在  其他
关注(0)|答案(1)|浏览(173)

我试着用R中的sum来做一个列组合。需要对仓库中的关联订单进行分析。
例如
原始表

  1. Order | SKU | QTY
  2. \#1 | Banana | 1
  3. \#1 | Apple | 2
  4. \#1 | Pear | 1
  5. \#1 | Cherry | 2
  6. \#2 | Banana | 4
  7. \#2 | Apple | 1
  8. \#2 | Grape | 1
  9. \#3 | Banana | 2
  10. \#3 | Pear | 1

按出站频率转换表

  1. Order | Banana | Apple | Pear | Cherry | Grape
  2. \#1 | 1 | 1 | 1 | 1 |
  3. \#2 | 1 | 1 | | | 1
  4. \#3 | 1 | | 1 | |

成双成对,

  1. SKU1 | SKU2 | Free
  2. Banana | Apple | 2
  3. Banana | Pear | 2
  4. Banana | Cherry| 1
  5. Banana | Grape | 1
  6. Apple | pear | 1
  7. Apple |Cherry | 1
  8. Apple |Grape | 1
  9. Pear |Cherry | 1

香蕉对需要集中批量或位于仓库。
我是一个初学者在循环,尝试Map在咕噜声,为文本,成对的任何东西。我找不到信息
我想知道如何解决这一对
我通常会治疗超过10,000名患者
呜呜,两,随便用什么方法,我都不介意,我想解这个矩阵

l2osamch

l2osamch1#

你可以试试crossprod + xtabs + as.data.frame.table

  1. > tbl <- crossprod(!!xtabs(QTY ~ ., df))
  2. > tbl[upper.tri(tbl, TRUE)] <- NA
  3. > na.omit(as.data.frame.table(tbl))
  4. SKU SKU.1 Freq
  5. 2 Banana Apple 2
  6. 3 Cherry Apple 1
  7. 4 Grape Apple 1
  8. 5 Pear Apple 1
  9. 8 Cherry Banana 1
  10. 9 Grape Banana 1
  11. 10 Pear Banana 2
  12. 14 Grape Cherry 0
  13. 15 Pear Cherry 1
  14. 20 Pear Grape 0

或者,如果您想删除0同现,可以尝试

  1. > tbl <- crossprod(!!xtabs(QTY ~ ., df))
  2. > tbl[upper.tri(tbl, TRUE) | tbl < 1] <- NA
  3. > na.omit(as.data.frame.table(tbl))
  4. SKU SKU.1 Freq
  5. 2 Banana Apple 2
  6. 3 Cherry Apple 1
  7. 4 Grape Apple 1
  8. 5 Pear Apple 1
  9. 8 Cherry Banana 1
  10. 9 Grape Banana 1
  11. 10 Pear Banana 2
  12. 15 Pear Cherry 1

数据

  1. df <- structure(list(Order = c(1, 1, 1, 1, 2, 2, 2, 3, 3), SKU = c(" Banana ",
  2. " Apple ", " Pear ", " Cherry ", " Banana ", " Apple ", " Grape ",
  3. " Banana ", " Pear "), QTY = c(1L, 2L, 1L, 2L, 4L, 1L, 1L,
  4. 2L, 1L)), class = "data.frame", row.names = c(NA, -9L))
展开查看全部

相关问题