2017-09-28 26 views
0

私はRに非常に新しいです。注文IDに複数の観測値として表される複数のアイテムがある約90000件のトランザクションを持つデータフレームで市場バスケット分析をしようとしています。これは非常に優れたファイルです。私はちょうど最初の12行をサンプルデータフレームとして与えています。カラム内のユニークな観測結果を組み合わせる

order <- c(1,1,1,1,1,2,2,2,2,3,3,3,3,3,3,3) 
time <- c(13.40,13.40,13.40,13.40,13.40,18.20,18.20,18.20,18.20,22.45,22.45,22.45,22.45,22.45,22.45,22.45) 
item <-c('dal', 'napkin','rice','tooth paste','washing powder','tooth paste', 'dal', 'rice','chocolate', 'rice','dal','chocolate',tooth paste','veggies','napkin','toor dal') 
dataframe <- data.frame(order, time,item) 

今、私は注文を結合してアイテムの疎マトリックスを作りたいと思っています。誰かが私を助けることができますか?

+0

予想される出力については不明です。おそらく 'ライブラリ(data.table); dcast(setDT(dataframe)、order〜item、length) ' – akrun

+0

_How_注文を結合しますか?各注文の商品数を数えますか? – useR

答えて

0
order <- c(1,1,1,1,1,2,2,2,2,3,3,3,3,3,3,3) 
time <- c(13.40,13.40,13.40,13.40,13.40,18.20,18.20,18.20,18.20,22.45,22.45,22.45,22.45,22.45,22.45,22.45) 
item <-c('dal', 'napkin','rice','tooth paste','washing powder','tooth paste', 'dal', 'rice','chocolate', 'rice','dal','chocolate','tooth paste','veggies','napkin','toor dal') 
dataframe <- data.frame(order, time,item) 

#seperate the Orders to one file each order 
for(i in 1:length(unique(dataframe$order))){ 
    bez=paste("Order_",i,sep="") 
    aux = subset(x = dataframe, subset = order ==i, select = c(order, item)) 
    assign(bez,aux) 
} 
#create a matrix with orders as columns and items as rows 
matr = matrix(nrow = length(item), ncol = length(unique(order))) 
rownames(matr) = item 
aux = NA 
#get 1 where an item is "ordered" 
for(i in 1:length(unique(order))){ 
    aux = paste(get(paste("Order_",i,sep = ""))$item) 
    matr[aux,i]=1 
} 
matr 

あなたはこのようなコードを実行することができます...あなたが望むことを望みます。 ご質問がある場合はお気軽にお問い合わせください。

乾杯

+0

ありがとうSeverin。今はうまくいく。 –

関連する問題