问题描述
描述:我有一个包含患者 ID 和诊断 ID 的数据集。每个患者可能有 1 到 20 个诊断。 Example of Dataset
目标:我需要将我的数据框转换为用于市场篮子分析的交易矩阵。
问题:到目前为止,我在使用用于制作事务矩阵的普通工具时遇到了问题,我相信这是因为每个 PID 记录的长度各不相同。
我的尝试:我使用了“arules”包,尝试通过将数据作为事务矩阵读取来将我的数据转换为事务矩阵。 Example of code used to load in data as Transaction
这导致了错误: 'read.transactions("intermediate.csv",format = "single",cols = c("pid",: 'cols' 必须是数字(字符只允许用于 header = TRUE)'
最初,这个错误让我相信列的数据类型不正确(非数字),尽管在写出文件并将其读回之前,我在行中明确地将它们的数据类型设置为数字交易。我已通过读回文件(而不是作为交易)确认文件采用我想要的格式。
关于如何进行的任何想法?我也将使用“sqldf”来尝试完成这项工作,但我更愿意将其保留在“arules”库中。
谢谢。
解决方法
好吧,很快就得出了答案,但我可能会将问题留在这里作为示例。附件是修复所需的全部内容。 Fix