2016-08-29 38 views
0

我一直在努力重寫我的代碼,與data.frames一起工作與ffdf。我有兩列,很多做文章後,我已經成功地做了分割,並得到一個列表具有以下外觀:解析as.transactions在r

data= 
$A 
1 2 3 
$B 
4 5 6 

其中A,B是「籃子」或分組,「1 2 3「特定分組項目。我現在想要的是將這些轉換爲交易,並希望能夠做到先驗。我已經嘗試了簡單

as(i, "transaction") 

其工作良好,當「數據」是從data.frame產生的,但現在它產生一個錯誤:

Error in as(data, "transactions") : 
no method or default for coercing 「list」 to 「transactions」 

我已經看到重複的項目可能會導致這些問題,所以我已經消除了這些,但錯誤依然存在。

+0

只是要清楚原始數據集看起來像: X Y A 1 A 2 A 3 B 4 B 5 b 6分配 –

+1

你可以改善你的問題。請閱讀[如何在R中提供最小重現性示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example#answer-5963610)。好的帖子通常提供最少的輸入數據,期望的輸出數據和代碼嘗試 - 在新的/乾淨的R會話中(即也包括庫調用等)進行所有的複製 - 粘貼 - 運行。 – lukeA

回答

0

應該沒問題:

library(arules) 
data <- list(A=1:3, B=4:6) 

showMethods("coerce", classes="transactions") 
# Function: coerce (package methods) 
# from="data.frame", to="transactions" 
# from="list", to="transactions" 
# from="matrix", to="transactions" 
# from="ngCMatrix", to="transactions" 
# from="tidLists", to="transactions" 
# from="transactions", to="data.frame" 
# from="transactions", to="list" 
# from="transactions", to="matrix" 
# from="transactions", to="tidLists" 

class(data) 
# [1] "list" 
as(data, "transactions") 
# transactions in sparse format with 
# 2 transactions (rows) and 
# 6 items (columns) 

另外請注意,你寫as(i, "transaction"),而不是as(i, "transactions")

+0

...我忘了在轉換之前加入arules,仍然是這個領域的新手。謝謝! –

0

幸運的是,實際上並沒有必要這樣做!我們可以按照上面描述的順序發送一個列表,並且apriori會試圖找出它!感謝來自以下鏈接的研究。

Cannot convert dataframe to transactions object

我會離開的問題開放,如果別人需要解決它。