我的输入文件的每一行都包含一个事务。以下示例显示了我的输入文件的结构:
a
a
a,b
b
a,b
a,c
c
c
上面的输入文件有 11 个项目和 8 个项目集。该输入文件有 3 个唯一项和 5 个唯一项集。我想计算每个唯一项集的频率。对于上述输入文件,我想编写一个 R 脚本来生成类似于以下 CSV 文件的输出:
"a",0.25
"a,b",0.25
"c",0.25
"b",0.125
"a,c",0.125
该报告显示输入交易文件中每个唯一项目集的出现次数除以输入中项目集的总数。请注意,报告已根据项集的频率对项集进行了排序。如何使用 R 计算输入事务文件中项集的频率?
更新: 我已经使用 read.transactions 和 apriori 方法计算了关联规则。我可以重用这些方法的结果来计算输入项集的频率吗?
最佳答案
就这么简单:
Data <- read.table(header=TRUE, text="
itemset
a
a
a,b
b
a,b
a,c
c
c")
cbind(table(Data), table(Data) / nrow(Data))
## EDIT: Include sorting by observed proportion
T <- table(Data) # observed freq.
T <- cbind(T, T/nrow(Data)) # combine freq. and prop.
T <- T[order(T[,2], decreasing=TRUE),] # sort
colnames(T) <- c("freq", "prop") # add column names
关于r - 如何使用 R 计算项集的频率?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8768560/