0

7列のExcelファイルがあります。最初の 3 つは数値で、列 4 ~ 7 はカテゴリです。これを txt ファイルに保存し、RStudio を使用して、環境で [データセットのインポート] ボタンをクリックして R にロードし、次のコマンドを起動しました。

data <- read.table("~/csectiondata.txt", quote="\"", comment.char="")*

今、私は apriori(data) を使用しようとしてきましたが、これは私が得るエラーです:

asMethod(object) のエラー: 列 1、2、3 が論理的でないか、係数ではありません。as.factor、as.logical、または categorize を最初に使用します。

sapply と as.factor を使用すると役立つと読んだので、次のようにしました。

data <- sapply(data, as.factor)*

しかし、今、私はこのエラーが発生しています:

t(as(from, "ngCMatrix")) のエラー: 関数 't' のメソッドを選択する際に引数 'x' を評価する際のエラー: asMethod(object) のエラー: 'NA' を "nsparseMatrix" に強制することはできません

私も試しtransaction_data <- as(data, "transactions")てみましたが、同じ結果になりました。

「asMethod(オブジェクト)のエラー」

私は完全に迷っています。誰かが私を助けることができますか?

4

1 に答える 1

0

最初にデータを準備する必要があります。アソシエーション ルール マイニングはアイテムのみを使用でき、連続変数では機能しません。

たとえば、人を説明する項目 (トランザクションと呼ばれるオブジェクト) は、が高い可能性があります。その人物が背が高いという事実は、項目tallを含むトランザクションでエンコードされます。これは、通常、アイテムごとのトランザクション マトリックスでTRUE値によってエンコードされます。これがas.transaction、列がアイテムを表すと想定しているため、論理列を処理できる理由です。この関数は、名目上の値 (つまり、因子) を含む列を一連のバイナリ項目 (レベルごとに 1 つ) に変換することもできます。したがって、名義変数がある場合は、 のようなものを使用して、それらが要因 (文字や数値ではない) であることを確認する必要がありますdata[,"a_nominal_var"] <- factor(data[,"a_nominal_var"])

連続変数は最初に離散化する必要があります。離散化の結果のアイテムは年齢が18 歳を超えている可能性があり、列にはTRUEまたはのみが含まれますFALSEまたは、レベルage<=1850=>age>18、およびage>50の要因にすることもできます。これらは、レベルごとに 1 つずつ、3 つのアイテムに自動的に変換されます。rulesの関数discretize()を見てください。

于 2015-10-08T16:40:28.997 に答える