R:如何将交易项目对的表转换为交易矩阵x项目?

时间:2015-09-11 19:00:42

标签: r data-visualization data-mining

我在R中有一个像这样的数据框:

$(document).on("click", "#enroll-deposit", function() {
    var isChecked = $(this).is(':checked');    
    if (isChecked) {
        var url = '@Url.Action("waivetask", "OBProcess" , new { id=ViewBag.DocId, tid=ViewBag.TaskId })';
        bootbox.dialog({
            message: "Are you sure you want to waive <strong> Direct Deposit </strong>",
            title: "Waive Direct Deposit",
            buttons: {
                main: {
                    label: "Cancel",
                    className: "btn-default",
                    callback: function() {
                        //NOT SURE WHAT TO PUT
                    }
                },
                danger: {
                    label: "Waive and Move On to Next Task",
                    className: "btn-danger",
                    callback: function() {
                        window.location.href = url;
                    }
                }
            }
        });
    }
});

如何将其转换为这样的表?

user1,A
user1,B
user2,A
user2,C
user2,C
user3,A
user4,C

实际上我的数据有一个时间间隔作为第二列,这是用户第一次和当前购买之间经过的时间。我想做一个矩阵图,其中矩阵中的每一行都是图像中的一条线(并且每个元素都是一个像素)。

(我可以(有点)使用arules包,导出原始数据帧并将其作为事务导入,但我认为必须有直接的方法来执行此操作,而不需要这样的黑客。)

谢谢!

1 个答案:

答案 0 :(得分:4)

您可以使用table()

> table(df1)
#       V2
#V1      A B C
#  user1 1 1 0
#  user2 1 0 2
#  user3 1 0 0
#  user4 0 0 1

如果您想将此输出存储为新数据框df2,则可能存在以下情况:

df2 <- as.data.frame.matrix(table(df1))

数据

df1 <- read.table(text="user1,A
                        user1,B
                        user2,A
                        user2,C
                        user2,C
                        user3,A
                        user4,C", header=F, sep=",")