2016-11-25 6 views
1

この私が私の本の中で参照コード: プロットこのデータセットに対する信頼バンドの上下両端:パネル引数はRでどのように機能しますか?

print(xyplot(lower + upper ~ x, data=NPL.bands(dataset$variable), 
    panel = function(x,y,...) { 
     panel.xyplot(x,y,...) 
     panel.curve(pnorm(x,7.22,1.14), lwd=1.5) 
    })) 

だから私は、次のようにこれを読み始めます。

その後、私は混乱しています。私は、パネル機能がパネル内にあるものにさらに特化した変更を加えることができることを知っています。

「このパネルにxy関数を入れて、xyplot関数で呼び出され、次の引数を持つ曲線になります」というコードがあるようです。

パネル引数を呼び出すと、panel.Xを実行できます。ここで「X」は、パネル引数が最初に呼び出したものに関連する関数です。 (この場合関数 "function(x、y、...)")

ボーナスの質問:Rはどのように "..."引数にパックするかを知っていますか?

答えて

1

私はあなたが基本的に正しいと言いたいと思います。このインスタンスのpanelパラメータは、2つの名前付き引数、すなわちxyを受け取り、ドットリスト内の名前付き引数を受け入れるように指定された関数です(ただし、その名前が特定のパネル関数の名前と正確に一致する場合のみです)。名前付きパラメータはpanel.xyplotpanel.curveのためのヘルプページに移動して値を割り当ててしまうかもしれません何を見上げる。また、この場合には

を使用すると、式にチルダのLHS上の2つの名前を持っているので、panel.xyplotyの各インスタンス関数はylowerと1回、upperと1回、ベクトルを2回渡します。panel.curve呼び出しでは、これらの余分な値が得られません。パラメータリストにはno yがあります。

私はこのNPL.band機能がパッケージSMIRからであり、あなたのデータの引数のようなものに見えると仮定しています:?

を見て
str(NPL.bands(y)) 
# 
List of 3 
$ x : num [1:44] 0 3 4 5 6 7 8 9 10 11 ... 
$ lower: num [1:44] 0.000362 0.004418 0.011527 0.030885 0.054412 ... 
$ upper: num [1:44] 0.0996 0.1327 0.1627 0.2176 0.2683 ... 

を私たちが見るpanel.xyplot:だから

panel.xyplot(x, y, type = "p", 
      groups = NULL, 
      pch, col, col.line, col.symbol, 
      font, fontfamily, fontface, 
      lty, cex, fill, lwd, 
      horizontal = FALSE, ..., 
      grid = FALSE, abline = NULL, 
      jitter.x = FALSE, jitter.y = FALSE, 
      factor = 0.5, amount = NULL, 
      identifier = "xyplot") 

「型」から「水平型」までの名前付きまたは位置合せ済みのパラメータのいずれかを追加できますが、「...」の後ろの名前の場合にのみ名前が付けられ、panel.xyplot関数呼び出し内で一致します。データのコンマの直後にcol=c("darkred", "orange"),を追加してみてください。

?Latticeページもご覧ください。

+0

ありがとうございます。これは非常に役に立ちました。 – Antecedent

関連する問題