使用 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)
但老实说,我不明白为什么会这样...如果有人在评论中启发我,我将不胜感激。
我在 .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)
但老实说,我不明白为什么会这样...如果有人在评论中启发我,我将不胜感激。