-5

alr3 パッケージから紙幣データ フレームをプロットしようとしています。ペア関数を実行するとエラーが発生し、正しいプロットが得られません。ありがとう。

基本的に、「alr3」パッケージに存在する「銀行券」データフレームからすべての偽造紙幣を見つけるためのコードを書こうとしています。

コード:-

pairs(banknote[,-1],panel=
function(x,y,fake){
xy <- cbind(x,y)
points(xy[fake==0,],pch=15)
points(xy[fake==1,],pch=0)
}, fake=Y)

エラー:-

Error in points(xy[fake == 0, ], pch = 15) : 
  (subscript) logical subscript too long
In addition: Warning messages:
1: In plot.window(...) : "fake" is not a graphical parameter
2: In plot.xy(xy, type, ...) : "fake" is not a graphical parameter
3: In title(...) : "fake" is not a graphical parameter
4: In plot.window(...) : "fake" is not a graphical parameter
5: In plot.xy(xy, type, ...) : "fake" is not a graphical parameter
6: In title(...) : "fake" is not a graphical parameter
7: In axis(side = side, at = at, labels = labels, ...) :
  "fake" is not a graphical parameter
4

2 に答える 2

2

エラー:どうやらlength(fake) > nrow(xy)評価が行われているとき。

警告:「fake = Y」引数は中括弧の外側にあるため、ペアに渡された引数として解釈されています。何を期待しているのかわかりません。また、ワークスペースに存在する可能性のあるデータを表示していないので、... ???

于 2012-09-21T01:34:06.810 に答える
2

@DWin に反響して、ワークスペースからY取得しようとすることを考えると、それが何であるかは明確ではありませんY

pchの列でを設定する場合は、次のように動作します。Ybanknote

pairs(banknote[,-c(1,7)], 
  panel = function(x,y,...){
    points(x,y,pch = ifelse(as.logical(banknote$Y), 0,15))})

ここに画像の説明を入力

data.frameを使用して and 列を参照する必要がない場合は、ステートメント$内ですべてをラップすることができ、最初に変数を見つけるために内部を調べますwith(banknote, ...)Rbanknote

したがって、次のように動作します

with(banknote, pairs(list(Left = Left, Right = Right, Bottom = Bottom, 
        Top = Top, Diagonal = Diagonal), 
      panel = function(x,y) points(x,y, pch= ifelse(as.logical(Y),0,15))) 
于 2012-09-21T01:37:40.117 に答える