9

Rでパッケージを使用しようとしていarulesSequencesますが、このパッケージを利用できるオブジェクトにデータ フレームを強制する方法がわかりません。

これは、私のデータ構造を複製するおもちゃのデータセットです。

ids <- c(rep("X", 5), rep("Y", 5), rep("Z", 5))
seq <- rep(1:5,3)
val <- sample(LETTERS, 15, replace=T)
df <- data.frame(ids, seq, val)
df

   ids seq val
1    X   1   T
2    X   2   H
3    X   3   V
4    X   4   A
5    X   5   X
6    Y   1   D
7    Y   2   B
8    Y   3   A
9    Y   4   D
10   Y   5   P
11   Z   1   Q
12   Z   2   R
13   Z   3   W
14   Z   4   W
15   Z   5   P

どんな助けでも大歓迎です。

4

6 に答える 6

1

read_baskets を使用して:

    read_baskets(con  = filePath.txt,
      sep = " ",
      info = c("sequenceID","eventID","SIZE"))

実際には、作成されたデータをテキスト ファイルにエクスポートし、read_baskets を介して再インポートすることを意味します。info 引数は、sequenceID、eventID、およびオプションの eventsize 列を含む最初の列を定義します。

于 2015-03-18T09:25:23.440 に答える
1

因子データ フレーム:

df_fact = data.frame(lapply(df,as.factor))

「トランザクション」データを構築します。

df_trans = as(df_fact, 'transactions')

試して:

itemFrequencyPlot(df_trans, support = 0.1, cex.names=0.8)
于 2012-10-23T02:03:36.647 に答える
1

時間値ではなく注文ランキングをリストする本質的に「注文」列を追加することでうまくいきました。命名規則を非常に具体的にする必要があります。"group" または "ordered basket #" 変数に sequenceID という名前を付けて、ランキングまたは順序付けの eventID を呼び出します。

私を助けた (そして長い間頭を悩ませていた) もう 1 つのことは、 read_baskets() を指定する必要があるように思われたことです。

read_baskets(con  = filePath.txt, sep = " ", info = c("sequenceID","eventID","SIZE"))

ヘルプ関数によって c() の詳細がオプションのヘッダーのように見えますが、そうではありません。ファイルからヘッダーを削除して read_baskets() コマンドで指定する必要があるように思われました。そうしないと、問題が発生しました。

于 2016-01-14T12:23:25.357 に答える
0

データ フレームを使用する代わりに、データを個別に分割し、トランザクションに変換するのが最も効果的でした。

 eh$cost<-split(eh$cost$val ,eh$cost$id)
 eh$cost1<- as(eh$cost,"transactions")
于 2015-08-27T17:53:17.187 に答える
0
df <- df %>% arrange(id,seq) %>% summarise(size=n(), items=list(val))

次にtxtに書き込みます(このチュートリアルでは、データラングリング後に書き込み、関数で読み取ることも提案していread_basketます)

df$items <- as.character(df$items)
write.table(df, file = "trans.txt", sep = " ", row.names = FALSE, col.names = FALSE)

ファイルを読んで確認する

x <- read_baskets("trans.txt", sep = " ", info = c("sequenceID","eventID","SIZE"))
as(x, "data.frame")
于 2021-04-12T12:48:02.440 に答える