1

この例のコードを実行すると、最後の行に次のエラーが表示されます。

matrix(mean(range)、ncol = ncol(x)、nrow = nrow(x)、dimnames = dimnames(x))のエラー:非数値行列範囲

ただし、数か月前に、ライブラリarulesVizがカテゴリデータ型で機能する他のケースを見たことを覚えています。

landing.data=read.csv2("http://archive.ics.uci.edu/ml/machine-learning-databases/shuttle-landing-control/shuttle-landing-control.data", 
                           sep=",", header=F, dec=".")
    landing.data=as.data.frame(sapply(landing.data,gsub,pattern="\\*",replacement=10))
    library(arules)
    landing.system <- as(landing.data, "transactions")
    rules <- apriori(landing.system, parameter=list(support=0.01, confidence=0.6))
    rulesLandingManual <- subset(rules, subset=rhs %in% "V1=1" & lift>1.2)
    library(arulesViz)
    plot(head(sort(rulesLandingManual, by="confidence"), n=3),
         method="graph",control=list(type="items"))
4

3 に答える 3

2

コードを実行したtraceback()後に実行すると、次のようになります。

6: matrix(mean(range), ncol = ncol(x), nrow = nrow(x), dimnames = dimnames(x))
5: map(m, c(5, 20))
4: graph_arules(x, measure = measure, shading = shading, control, 
       ...)
3: plot.rules(head(sort(rulesLandingManual, by = "confidence"), 
       n = 3), method = "graph", control = list(type = "items"))
2: plot(head(sort(rulesLandingManual, by = "confidence"), n = 3), 
       method = "graph", control = list(type = "items"))
1: plot(head(sort(rulesLandingManual, by = "confidence"), n = 3), 
       method = "graph", control = list(type = "items"))

したがって、基本的にエラーはから発生します6:。また、エラーは、引数のいずれかがmatrix(.)数値ではないことを意味します。これを説明するために:

> matrix(1:4, ncol=2)

#      [,1] [,2]
# [1,]    1    3
# [2,]    2    4

> matrix(1:4, ncol="x")
# Error in matrix(1:4, ncol = "x") : non-numeric matrix extent

エラーが表示されますか?パッケージが拡張されgraph、クラスのオブジェクトに拡張されるため、ここでできることはあまりないと思います。したがって、これはおそらく開発者側と関係があります。それが実際に当てはまる場合は、おそらく開発者に書いて/連絡する価値があります。mapmatrixrules

于 2013-02-10T11:30:20.413 に答える
0

ルールをマイニングしていたいくつかのデータでまったく同じ問題が発生しました。いくつかのテストを行った後、このエラーは、次の条件を満たすルールが他にもある場合に、sort()コマンドとhead()コマンドを使用したことが原因であることがわかりました。必要以上の品質対策。

たとえば、コードでは、rulesLandingManualに上位3つの信頼ルールをプロットするように要求しますが、(rulesLandingManual)を調べると、信頼1(最大信頼)のルールが216あることがわかります。したがって、上位をサブセット化するように要求すると、 n(nが217未満)の場合、この新しいルールオブジェクトで生成された行列は、少なくともプロット関数のグラフメソッドでは乱雑になります。

私が説明していることをテストするには、コードでnを217から224(224はrulesLandingManualのルールの数)のいずれかに変更するとグラフが描画されますが、n=216以下の場合は上記のエラーが発生します。

これがこのように機能することを意図しているのか、それともバグなのかはわかりません。現時点でそれを理解しようとしているので、説明が非常に役立ちます。

于 2013-02-17T02:59:09.397 に答える
-1

range関数です。意味mean(range(x)), ...ですか?

平均平均。ふふ。

于 2013-02-10T09:33:08.723 に答える