共起行列を持つという問題を解決しようとしています。トランザクションとアイテムのデータファイルがあり、アイテムが一緒に表示されるトランザクション数のマトリックスを表示したいと考えています。
私は R プログラミングの初心者であり、特定のループを作成するのではなく、R が持つすべてのショートカットを見つけることを楽しんでいます (以前は C を使用していましたが、現在は Excel マクロと SPSS のみに固執しています)。ここで解決策を確認しましたが、機能する解決策が見つかりませんでした (最も近いのは、ここに示されている解決策です: Co-occurrence matrix using SAC? - しかし、projecting_tm を使用するとエラー メッセージが表示されました。私の場合は成功しました。
基本的に、次を含むテーブルがあります。
TrxID Items Quant
Trx1 A 3
Trx1 B 1
Trx1 C 1
Trx2 E 3
Trx2 B 1
Trx3 B 1
Trx3 C 4
Trx4 D 1
Trx4 E 1
Trx4 A 1
Trx5 F 5
Trx5 B 3
Trx5 C 2
Trx5 D 1, etc.
次のようなものを作成したい:
A B C D E F
A 0 1 1 0 1 1
B 1 0 3 1 1 0
C 1 3 0 1 0 0
D 1 1 1 0 1 1
E 1 1 0 1 0 0
F 0 1 1 1 0 0
私がしたことは次のとおりです(そして、あなたはおそらく私の新人Rのアプローチを笑うでしょう):
library(igraph)
library(tnet)
trx <- read.table("FileName.txt", header=TRUE)
transID <- t(trx[1])
items <- t(trx[2])
id_item <- cbind(items,transID)
item_item <- projecting_tm(id_item, method="sum")
item_item <- tnet_igraph(item_item,type="weighted one-mode tnet")
item_matrix <-get.adjacency(item_item,attr="weight")
item_matrix
上記のように、cbind はおそらく失敗したため、projecting_tm で結果が得られませんでした。
私の方法に対する代替アプローチまたは修正はありますか?
あなたの助けは大歓迎です!