将 .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.factorfactor 方法可以轻松创建因子向量

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_dfs?

以上是关于将 .csv 文件读取为 read.transactions 以在 R 中应用 ariori()?的主要内容,如果未能解决你的问题,请参考以下文章

将CSV文件数据读取为命名元组行的pythonic方法是啥?

如何将 csv 文件转换为可作为文本读取的列表列表? Python

将 .csv 文件读取为 read.transactions 以在 R 中应用 ariori()?

如何使用 pandas.read_csv() 将索引数据读取为字符串?

将 CSV 文件读取到 numpy 数组,第一行为字符串,其余为浮点数

pandas使用read_csv读取文件数据设置converters参数将百分比字符串转换为数字