R:将数据帧转换为事务以使用ARules包

时间:2014-12-02 21:57:37

标签: transactions dataframe arules

我有一个csv文件,一旦导入就看起来像下面的数据框:

df <- read("data.csv")

ID  Name  Flag1 Flag2 Flag3 Flag4
1    a      0    F2     F3   F4
2    b     F1     0     F3   F4
3    c      0    F2     F3    0
4    d      0    F2     0    F4
5    e     F1    F2     F3    0

ID和名称是因素。 Flag1到Flag4是chr。

我需要使用规则包,因此我需要将此数据帧转换为事务文件。我知道要这样做,我需要将所有值转换为因子,所以我这样做了:

as(as.factor(Flags), "transactions")

给了我这个:

Error in sort.list(y) : 'x' must be atomic for 'sort.list'
Have you called 'sort' on a list?

然后我尝试直接阅读csv文件:

read.transactions("data.csv", format = "basket", sep = ",")

给了我这个:

Error in asMethod(object) : 
  can not coerce list with transactions with duplicated items

我认为这是因为数据中的0,但我无法找到一种方法来删除0。要使用规则包中的函数,我需要数据集看起来像这样,对吗?

1,a,F2,F3,F4
2,b,F1,F3,F4
3,c,F2,F3
4,d,F2,F4
5,e,F1,F2,F3

提前致谢。

1 个答案:

答案 0 :(得分:0)

尝试按以下方式阅读数据:

required_Data&lt; -read.transactions(“data.csv”,rm.duplicates = TRUE,format =“basket”,sep =“,”)

希望有所帮助!