将POS数据格式化为一个可以应用Arules(Apriori)

时间:2017-10-19 21:53:32

标签: r apriori arules

enter image description here任何人都可以提供有关如何将以下数据格式转换为“Arules'可以使用。 名为' df'的数据集就像

' Recieptnumber' ,'产品名称'        1,鸡蛋        1,苹果        2,水        3,筹码        3,苹果        3,纸 .....

正在使用table(df)函数来创建矩阵---思想就是备用矩阵。但它不能用于' Arules'封装

有关如何传输数据集的任何建议吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

如果您在文件中使用read.transactions()或使用? transactions中的示例,请使用a_df3 <- data.frame( TID = c(1,1,2,2,2,3), item=c("a","b","a","b","c", "b") ) a_df3 trans4 <- as(split(a_df3[,"item"], a_df3[,"TID"]), "transactions") trans4 inspect(trans4)

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    let vc = PopUpCellViewController(nibName: "PopUpCellViewController", bundle: nil)
    self.navigationController?.pushViewController(vc, animated: true)
    print("called")
    let cell = collectionView.cellForItem(at: indexPath) as! AnnotatedPhotoCell
    sourceCell = cell
    vc.picture = resizeImage(image: cell.imageView.image!, targetSize: CGSize(width: (view.bounds.width - 45),height: 0))
    vc.comment = cell.commentLabel
    var image = UIImage(named: "back_button_thick")
    image = image?.withRenderingMode(UIImageRenderingMode.alwaysOriginal)
    self.navigationController?.navigationBar.backIndicatorImage = image
    self.navigationController?.navigationBar.backIndicatorTransitionMaskImage = image
    self.navigationItem.backBarButtonItem = UIBarButtonItem(title: " ", style: UIBarButtonItemStyle.plain, target: nil, action: nil)
}

func resizeImage(image: UIImage, targetSize: CGSize) -> UIImage {
    let size = image.size

    let widthRatio  = targetSize.width  / image.size.width

    // Figure out what our orientation is, and use that to form the rectangle
    var newSize: CGSize

    newSize = CGSize(width: size.width * widthRatio,  height: size.height * widthRatio)

    // This is the rect that we've calculated out and this is what is actually used below
    let rect = CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height)

    // Actually do the resizing to the rect using the ImageContext stuff
    UIGraphicsBeginImageContextWithOptions(newSize, false, 1.0)
    image.draw(in: rect)
    let newImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    return newImage!
}