リスト形式をtransactions形式に変換する際、重複があるとエラーを吐き出すらしい。
(こちらのページを参考にさせていただきました。多謝。→http://d.hatena.ne.jp/hiru926/20100103/1262508600)
というわけで、ヘルプなどを探し回たんだけど、私の「検索力」が足りないせいか、さっぱり見つからず。
なので、プログラムを書いたほうが早いと開き直り、以下のような感じで作ってみました。
「いったい誰がこんな関数を使うんだ」というツッコミは甘んじて受けます(笑)
というか、これ用の関数ってどれなんだろう....
myfunc <- function(x.list) { # リスト形式のデータを用意 x <- NULL for(i in 1:length(x.list) ) x[[i]] <- names( table( x.list[[i]] ) ) # 集計してラベルを取り出す return(x) }
使用例
> x.list <- list( # 重複のあるリスト形式 c( "春夫" , "夏子" , "秋子" , "冬美" ), c( "春夫" , "秋子" , "冬美" ), c( "一郎" , "夏子" , "秋子" , "二郎" ), c( "冬美" , "夏子" , "夏子" , "一郎" ) ) # ←「夏子」が重複! > as(x.list, "transactions") 以下にエラー validObject(.Object) : 不正なクラス "ngCMatrix" オブジェクト: slot i is not *strictly* increasing inside a column # このままだとエラーが吐き出される > x.list <- myfunc(x.list) # myfunc をかませて、重複を削除 > as(x.list, "transactions") transactions in sparse format with 4 transactions (rows) and 6 items (columns) # 変換成功!