将 .csv 文件读取为 read.transactions 以在 R 中应用 ariori()?
Posted
技术标签:
【中文标题】将 .csv 文件读取为 read.transactions 以在 R 中应用 ariori()?【英文标题】:Reading the .csv file as read.transactions for applying ariori() in R? 【发布时间】:2017-07-02 18:16:47 【问题描述】:我有 .csv 数据,其列和 5000 行如下所示:
age sex children distance
1 0 1 1
1 1 1 2
2 1 0 1
1 0 1 3
3 1 0 2
1 1 1 1
我想使用apriori()
应用关联规则挖掘。
于是尝试使用read.transactions
读取数据集,如下:
mar = read.transactions("Marketing campaign.csv", format = "basket",
sep = ",", cols = c("age", "sex", "children", "distance"))
但我收到以下错误:
read.transactions("Marketing campaign.csv", format = "basket", : 'cols' 必须是 'basket' 的数字标量。
请帮忙。提前致谢
【问题讨论】:
尝试使用as.factor
instad of as.character
您可以使用read.csv
中的colClasses
参数为每一列指定类,如下所示:dat <- read.csv("filename.csv", colClasses = rep("character", 4))
另见:***.com/a/2805414/4300478
【参考方案1】:
在 R 中,保存分类变量的数据类型称为factor
。使用as.factor
和factor
方法可以轻松创建因子向量
myDf <- data.frame(
age = c(1,1,2,1,3,1),
sex = c(1,1,1,0,1,1),
children = c(1,1,0,1,0,1),
distance = c(0,2,1,3,2,1)
)
myDf
# age sex children distance
# 1 1 1 1 0
# 2 1 1 1 2
# 3 2 1 0 1
# 4 1 0 1 3
# 5 3 1 0 2
# 6 1 1 1 1
myDf$sex <- factor(myDf$sex, labels = c("F", "M"))
myDf
# age sex children distance
# 1 1 M 1 0
# 2 1 M 1 2
# 3 2 M 0 1
# 4 1 F 1 3
# 5 3 M 0 2
# 6 1 M 1 1
【讨论】:
但我有 5000 行这种组合。在那之后,我需要应用 apriori() 。即使在转换因素之后,它也表明没有将“tbl_df”强制转换为“transactions”的方法或默认值 我不明白行数在这里有何不同。关于transactions
:这是一个与您之前提出的完全不同的问题。在arules
包中,有一个名为transactions
的特定类。如果您需要这方面的帮助,请在问题中提及这一点
as.transactions
是否可以在数据帧上工作,而不是tbl_df
s?以上是关于将 .csv 文件读取为 read.transactions 以在 R 中应用 ariori()?的主要内容,如果未能解决你的问题,请参考以下文章
将CSV文件数据读取为命名元组行的pythonic方法是啥?
如何将 csv 文件转换为可作为文本读取的列表列表? Python
将 .csv 文件读取为 read.transactions 以在 R 中应用 ariori()?
如何使用 pandas.read_csv() 将索引数据读取为字符串?