R语言如何拆分单元素向量构建arules可用事务型数据框
R拆分单元素向量构建arules事务数据实现步骤
1. 字符串拆分与清洗
你的t1是1行1列的矩阵结构,首先提取内部字符串,按逗号分隔符拆分后清洗首尾无效的HTML标签、换行符残留:
# 提取矩阵内的原始字符串 raw_text <- t1[1, 1] # 按单引号+逗号的固定分隔符拆分,避免误拆内容里的逗号 split_res <- strsplit(raw_text, split = "','", fixed = TRUE)[[1]] # 清洗首尾无效字符:去掉开头的<meta标签残留、末尾的>和换行符 item_vec <- gsub("^.*?'", "", split_res) item_vec <- gsub(">\\s*\\n?$", "", item_vec)
运行后item_vec就是拆分完成的独立元素向量,每个元素对应一个单独的词项。
2. 转换为arules可用的事务对象
arules包直接支持列表结构转事务格式,不需要额外构造数据框,单条/多条事务都可以按这个逻辑处理:
# 加载arules包 library(arules) # 把清洗好的词项向量存入列表,单个列表元素对应1条事务 # 有多条事务时,依次把每条的词项向量作为列表元素追加即可 trans_list <- list(item_vec) # 转换为arules原生的transactions格式 trans_data <- as(trans_list, "transactions") # 校验转换结果,查看事务内容 inspect(trans_data)
注意事项
- 拆分时用
fixed = TRUE按固定字符串匹配分隔符,比正则匹配效率更高,也不会出现转义错误。 - 示例中出现的
São是网页编码不匹配导致的乱码,如果需要修正可以用iconv()函数转对应编码,不影响关联规则计算的话可以跳过该步骤。 - 如果后续需要批量处理多条同类爬取数据,把每条数据的清洗逻辑封装成函数,批量生成列表后一次性转事务对象即可。
内容的提问来源于stack exchange,提问作者tjus
相关产品推荐
相关产品推荐

