【问题标题】:transforming a transaction data to binary matrix format with R使用 R 将交易数据转换为二进制矩阵格式
【发布时间】:2018-05-20 22:19:10
【问题描述】:

我有一个这样的交易数据集: transaction data

我使用“arules”包将其转换为交易数据。

transactions <- read.csv("transactions.csv",header=TRUE,sep=",") agg <- split(transactions$item,transactions$TransID) ready <- as(agg,"transactions")

现在我的桌面上需要一个 csv 文件,它是一个二进制矩阵形式:行中的事务和列中的项目:矩阵中的 0 和 1 值,如下所示:binary matrix format

我使用了“arules”包中的write函数,但是无法使用。

【问题讨论】:

  • table 工作吗?

标签: r


【解决方案1】:

您的数据

transID <- c(48864208,48864208,48864266,48864266,48864266,48864266,48864276,48864276,
             48864276,48864276,48864282,48864282,48864282,48864282,48864282,48864282,
             48864282,48864282,48864282,48864296,48864296,48864300,48864300,48864300,
             48864300,48864300,48864300,48864300,48864300,48864300)
item <- c("dinner","cleaning","breakfast","breakfast","drink","dinner","dinner",
          "dinner","dinner","dinner","breakfast","snack","snack","snack","breakfast",
          "dinner","dinner","breakfast","dinner","dinner","dinner","fruit","fruit",
          "fruit","dinner","breakfast","breakfast","drink","cleaning","dinner")
head(data.frame(transID,item))
 transID      item
1 48864208    dinner
2 48864208  cleaning
3 48864266 breakfast
4 48864266 breakfast
5 48864266     drink
6 48864266    dinner

使用表函数,ifelse 将表转换为二进制矩阵

tab = table(transID,item)
tab
binarymat = ifelse(tab > 0,1,0)
print(binarymat)
# use write.csv function
write.csv(binarymat,"binarymat.csv")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 2012-12-03
    • 1970-01-01
    • 2021-09-09
    • 2022-01-23
    • 1970-01-01
    相关资源
    最近更新 更多