我有一个像这样的文本文件:
transactionID item
T100 l1,l2,l3
T200 l2,l4
T300 l2,l3
T400 l1,l2,l3
T500 l1,l3
T600 l2,l3
T700 l1,l3
T800 l1,l2,l3,l5
T900 l1,l2,l3
我想把它作为规则的事务文件来读。我使用了以下语句:
transacciones <- read.transactions(file = "/home/norhther/Escritorio/trans.txt",
format = "single",
sep = ",",
header = TRUE,
cols = c("transactionID", "item"),
rm.duplicates = TRUE)
但是,我得到以下错误:
Error in read.transactions(file = "/home/norhther/Escritorio/trans.txt", :
'cols' does not match entries in header of file.
编辑
您应该将格式更改为basket
,并使用sep = " "
与cols = 1
的分隔符,如下所示:
text = 'transactionID item
T100 l1,l2,l3
T200 l2,l4
T300 l2,l3
T400 l1,l2,l3
T500 l1,l3
T600 l2,l3
T700 l1,l3
T800 l1,l2,l3,l5
T900 l1,l2,l3'
write(text, file = "trans.txt")
library(arules)
transacciones <- read.transactions(file = "~/Downloads/trans.txt",
format = "basket",
sep = " ",
skip = 1,
cols = c(1),
rm.duplicates = TRUE)
inspect(transacciones)
#> items transactionID
#> [1] {l1,l2,l3} T100
#> [2] {l2,l4} T200
#> [3] {l2,l3} T300
#> [4] {l1,l2,l3} T400
#> [5] {l1,l3} T500
#> [6] {l2,l3} T600
#> [7] {l1,l3} T700
#> [8] {l1,l2,l3,l5} T800
#> [9] {l1,l2,l3} T900
创建于2022-11-20与reprex v2.0.2
根据函数read.transactions
的文档,您可以使用参数cols
:
对于单一格式,cols是长度的数字或字符向量给出列(字段)的编号或名称分别为事务id和项目id。如果字符,第一行文件被假定为带有列名的头文件。为了篮子格式,cols可以是给出列编号的数字标量(字段)与事务id。如果cols = NULL,则数据不存在包含事务id。
所以你可以指定你的列的数字向量,如c(1,2)
。下面是一个可复制的例子:
text = 'transactionID item
T100 l1,l2,l3
T200 l2,l4
T300 l2,l3
T400 l1,l2,l3
T500 l1,l3
T600 l2,l3
T700 l1,l3
T800 l1,l2,l3,l5
T900 l1,l2,l3'
cat(text)
#> transactionID item
#> T100 l1,l2,l3
#> T200 l2,l4
#> T300 l2,l3
#> T400 l1,l2,l3
#> T500 l1,l3
#> T600 l2,l3
#> T700 l1,l3
#> T800 l1,l2,l3,l5
#> T900 l1,l2,l3
write(text, file = "trans.txt")
library(arules)
transacciones <- read.transactions(file = "~/Downloads/trans.txt", # Change to your own directory
format = "single",
sep = ",",
header = TRUE,
cols = c(1, 2),
rm.duplicates = TRUE)
inspect(transacciones)
#> items transactionID
#> [1] {l2} T100 l1
#> [2] {l4} T200 l2
#> [3] {l3} T300 l2
#> [4] {l2} T400 l1
#> [5] {l3} T500 l1
#> [6] {l3} T600 l2
#> [7] {l3} T700 l1
#> [8] {l2} T800 l1
#> [9] {l2} T900 l1
创建于2022-11-19与reprex v2.0.2