捕获购物篮中的所有项目 (R/arulesSequences)
Capturing all items in basket (R/arulesSequences)
我在使用 R 中的 arulesSequences 包时遇到问题。我能够将篮子读入程序,并创建一个 data.frame,但是它无法识别第一列以外的任何其他项目。下面是我的数据集的示例,它遵循此处演示的形式:Data Mining Algorithms in R/Sequence Mining/SPADE。
[sequenceID] [eventID] [SIZE] items
2 1 1 OB/Gyn
15 1 1 Internal_Medicine
15 2 1 Internal_Medicine
15 3 1 Internal_Medicine
56 1 2 Internal_Medicine Neurology
84 1 1 Oncology
151 1 2 Hematology Hematology
151 2 1 Hematology/Oncology
151 3 1 Hematology/Oncology
185 1 2 Gastroenterology Gastroenterology
数据集以 [.CSV] 格式从 SAS 导出,然后在 Excel 中转换为 tab-delimited [.TXT] 文件。 Headers 被删除以导入到 R 中,但为了清楚起见,我将它们放在上面的括号中。所有空格都替换为下划线(“_”),项目名称也尽可能简化。每个项目都列在单独的列中。以下命令用于导入文件:
baskets <- read_baskets(con = "...filepath/spade.txt", sep = "[ \t]+",info=c("sequenceID", "eventID", "SIZE"))
没有出现任何错误,所以我继续执行以下命令:
as(baskets, "data.frame")
在这里,它 returns 按要求 data.frame,但是它无法捕获第一列以外的项目:
items sequenceID eventID SIZE
{OB/Gyn} 2 1 1
{Internal_Medicine} 15 1 1
{Internal_Medicine} 15 2 1
{Internal_Medicine} 15 3 1
{Internal_Medicine} 56 1 2
{Oncology} 84 1 1
{Hematology} 151 1 2
{Hematology/Oncology} 151 2 1
{Hematology/Oncology} 151 3 1
{Gastroenterology} 185 1 2
第 5 行应如下所示:
{Internal_Medicine, Neurology} 56 1 2
我曾尝试将文件直接导入为 [.CSV],但 data.frame 的格式与我上面使用制表符的尝试类似,只是它在第一项前面放置了一个逗号:
{,Internal_Medicine} 56 1 2
任何故障排除建议将不胜感激。看来这个包在格式化方面很挑剔。
Line 5 should look like:
{Internal_Medicine, Neurology} 56 1 2
退房
library(arulesSequences)
packageVersion("arulesSequences")
# [1] ‘0.2.16’
packageVersion("arules")
# [1] ‘1.5.0’
txt <- readLines(n=10)
2 1 1 OB/Gyn
15 1 1 Internal_Medicine
15 2 1 Internal_Medicine
15 3 1 Internal_Medicine
56 1 2 Internal_Medicine Neurology
84 1 1 Oncology
151 1 2 Hematology Hematology
151 2 1 Hematology/Oncology
151 3 1 Hematology/Oncology
185 1 2 Gastroenterology Gastroenterology
writeLines(txt, tf<-tempfile())
baskets <- read_baskets(con = tf, sep = "[ \t]+",info=c("sequenceID", "eventID", "SIZE"))
as(baskets, "data.frame")
# items sequenceID eventID SIZE
# 1 {OB/Gyn} 2 1 1
# 2 {Internal_Medicine} 15 1 1
# 3 {Internal_Medicine} 15 2 1
# 4 {Internal_Medicine} 15 3 1
# 5 {Internal_Medicine,Neurology} 56 1 2 # <----------
# 6 {Oncology} 84 1 1
# 7 {Hematology} 151 1 2
# 8 {Hematology/Oncology} 151 2 1
# 9 {Hematology/Oncology} 151 3 1
# 10 {Gastroenterology} 185 1 2
我在使用 R 中的 arulesSequences 包时遇到问题。我能够将篮子读入程序,并创建一个 data.frame,但是它无法识别第一列以外的任何其他项目。下面是我的数据集的示例,它遵循此处演示的形式:Data Mining Algorithms in R/Sequence Mining/SPADE。
[sequenceID] [eventID] [SIZE] items
2 1 1 OB/Gyn
15 1 1 Internal_Medicine
15 2 1 Internal_Medicine
15 3 1 Internal_Medicine
56 1 2 Internal_Medicine Neurology
84 1 1 Oncology
151 1 2 Hematology Hematology
151 2 1 Hematology/Oncology
151 3 1 Hematology/Oncology
185 1 2 Gastroenterology Gastroenterology
数据集以 [.CSV] 格式从 SAS 导出,然后在 Excel 中转换为 tab-delimited [.TXT] 文件。 Headers 被删除以导入到 R 中,但为了清楚起见,我将它们放在上面的括号中。所有空格都替换为下划线(“_”),项目名称也尽可能简化。每个项目都列在单独的列中。以下命令用于导入文件:
baskets <- read_baskets(con = "...filepath/spade.txt", sep = "[ \t]+",info=c("sequenceID", "eventID", "SIZE"))
没有出现任何错误,所以我继续执行以下命令:
as(baskets, "data.frame")
在这里,它 returns 按要求 data.frame,但是它无法捕获第一列以外的项目:
items sequenceID eventID SIZE
{OB/Gyn} 2 1 1
{Internal_Medicine} 15 1 1
{Internal_Medicine} 15 2 1
{Internal_Medicine} 15 3 1
{Internal_Medicine} 56 1 2
{Oncology} 84 1 1
{Hematology} 151 1 2
{Hematology/Oncology} 151 2 1
{Hematology/Oncology} 151 3 1
{Gastroenterology} 185 1 2
第 5 行应如下所示:
{Internal_Medicine, Neurology} 56 1 2
我曾尝试将文件直接导入为 [.CSV],但 data.frame 的格式与我上面使用制表符的尝试类似,只是它在第一项前面放置了一个逗号:
{,Internal_Medicine} 56 1 2
任何故障排除建议将不胜感激。看来这个包在格式化方面很挑剔。
Line 5 should look like:
{Internal_Medicine, Neurology} 56 1 2
退房
library(arulesSequences)
packageVersion("arulesSequences")
# [1] ‘0.2.16’
packageVersion("arules")
# [1] ‘1.5.0’
txt <- readLines(n=10)
2 1 1 OB/Gyn
15 1 1 Internal_Medicine
15 2 1 Internal_Medicine
15 3 1 Internal_Medicine
56 1 2 Internal_Medicine Neurology
84 1 1 Oncology
151 1 2 Hematology Hematology
151 2 1 Hematology/Oncology
151 3 1 Hematology/Oncology
185 1 2 Gastroenterology Gastroenterology
writeLines(txt, tf<-tempfile())
baskets <- read_baskets(con = tf, sep = "[ \t]+",info=c("sequenceID", "eventID", "SIZE"))
as(baskets, "data.frame")
# items sequenceID eventID SIZE
# 1 {OB/Gyn} 2 1 1
# 2 {Internal_Medicine} 15 1 1
# 3 {Internal_Medicine} 15 2 1
# 4 {Internal_Medicine} 15 3 1
# 5 {Internal_Medicine,Neurology} 56 1 2 # <----------
# 6 {Oncology} 84 1 1
# 7 {Hematology} 151 1 2
# 8 {Hematology/Oncology} 151 2 1
# 9 {Hematology/Oncology} 151 3 1
# 10 {Gastroenterology} 185 1 2