使用 arules write() 函数无意中将交易项目显示为因素 ID

Transaction items are unintentionally shown as factor IDs using arules write() function

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

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

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

然后我获取相关列并将它们转换为包含因子的列表。

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

最后我将这个列表强制为交易。

TransMat <- as(TransList, "transactions")

现在我想把每个"basket"的内容写入一个文件

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

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

真正让我困惑的是,当我使用 "ItemNumbers" 而不是 "ItemNames" 时,这并没有发生。

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

谢谢!

我能够解决我自己的问题。

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

trans <-as.data.frame(trans)

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