使用arules write()函数无意中将事务项显示为因子ID

时间:2018-04-04 10:22:25

标签: r arules

我有一个.csv文件中的事务列表。 对于每一行,第一列包含"TransactionID"。在第二列中包含该事务中单个项目的"ItemName"。第三列包含相应的"ItemNumber"

我使用read.csv导入这些交易。

trans = read.csv("MyFile.csv", header = TRUE, sep = ";")

然后我拿相关列并将它们转换为带有因子的列表。

TransList <- split(trans[,"ItemNames"], trans[,"TransactionID"])

最后,我将此列表强制转换为交易。

TransMat <- as(TransList, "transactions")

现在我想将每个“篮子”的内容写入文件。

write(TransMat, file = "Basket.csv", sep = ", ", quote = FALSE)

不幸的是,不是将原始"ItemNames"写入文件,而是将因子ID写入文件。

让我感到困惑的是,当我使用"ItemNumbers"代替"ItemNames"时,这种情况不会发生。

如何将原始“ItemNames”写入.csv文件而不是FactorID?

谢谢!

1 个答案:

答案 0 :(得分:1)

我能够解决自己的问题。

在分割之前简单地强制转换到data.frame就可以了。

trans <-as.data.frame(trans)

但老实说,我不明白为什么这样有效......如果有人在评论中给我启发,我会非常感激。