19

Coursera R Regression Models コースで提供されているこの単純な例を再現しようとしています。

require(datasets)
data(swiss)
require(GGally)
require(ggplot2)
ggpairs(swiss, lower = list(continuous = "smooth", params = c(method = "loess")))

6x6 ペアのプロットが表示されることを期待しています。スイス データの 6 つの変数の組み合わせごとに、黄土がより滑らかで信頼区間が 1 つある散布図です。

ただし、次のエラーが表示されます。

display_param_error() のエラー:「params」は非推奨の引数です。関数を「ラップ」して引数を提供してください。help("wrap", package = "GGally")

と のヘルプ ファイルに目を通し、ggpairs()との関数wrap()のさまざまな組み合わせを試しました。wrap()wrap_fn_with_param_arg()

これを期待どおりに動作させることができます:

ggpairs(swiss, lower = list(continuous = wrap("smooth")))

しかし、黄土の部分を追加すると、次のようにはなりません。

ggpairs(swiss, lower = list(continuous = wrap("smooth"), method = wrap("loess")))

上記の行を試したときに、このエラーが発生しました。

value[3L] のエラー: 次の ggpair プロット関数はすぐに利用できます: 連続: c('points', 'smooth', 'density', 'cor', 'blank') コンボ: c('box', 'dot ', 'facethist', 'facetdensity', 'denstrip', 'blank') 離散: c('ratio', 'facetbar', 'blank') na: c('na', 'blank')

diag 連続: c('densityDiag', 'barDiag', 'blankDiag') diag 離散: c('barDiag', 'blankDiag') diag na: c('naDiag', 'blankDiag')

function(data, mapping, ...){ の API に従う独自の関数を提供することもできます。. . } そして ggplot2 プロット オブジェクトを返します 例: my_fn <- function(data, mapping, ...){ p <- ggplot(data = data, mapping = mapping) + geom_point(...) p } ggpairs(data, lower = リスト (連続 = my_fn))

提供機能:黄土

明らかに、私はレスを間違った場所に入力しています。黄土の部分を追加する方法を理解してくれる人はいますか?

params 引数が非推奨になったため、ggpairs に loess を実装する方法を尋ねているため、私の問題はこれとは異なることに注意してください。

どうもありがとう。

4

3 に答える 3

28

簡単な方法の 1 つは、独自の関数を作成することです...以下はggpairs、質問のエラー メッセージによって提供されたものから編集されたものです。

library(GGally)
library(ggplot2)    
data(swiss)

# Function to return points and geom_smooth
# allow for the method to be changed
my_fn <- function(data, mapping, method="loess", ...){
      p <- ggplot(data = data, mapping = mapping) + 
      geom_point() + 
      geom_smooth(method=method, ...)
      p
    }

# Default loess curve    
ggpairs(swiss[1:4], lower = list(continuous = my_fn))

ここに画像の説明を入力

# Use wrap to add further arguments; change method to lm
ggpairs(swiss[1:4], lower = list(continuous = wrap(my_fn, method="lm")))

ここに画像の説明を入力


これにより、それぞれに渡される引数をもう少し制御できるようになります。geon_

  my_fn <- function(data, mapping, pts=list(), smt=list(), ...){
              ggplot(data = data, mapping = mapping, ...) + 
                         do.call(geom_point, pts) +
                         do.call(geom_smooth, smt) 
                 }

# Plot 
ggpairs(swiss[1:4], 
        lower = list(continuous = 
                       wrap(my_fn,
                            pts=list(size=2, colour="red"), 
                            smt=list(method="lm", se=F, size=5, colour="blue"))))
于 2016-01-29T15:59:03.707 に答える
13

おそらく、Coursera オンライン コース Regression Models を受講していて、コースで指定された Rmarkdown ファイルを html ファイルに変換しようとすると、私と同じようにこのエラーに遭遇します。

私が試した方法は次のとおりです。

require(datasets); data(swiss); require(GGally); require(ggplot2)
g = ggpairs(swiss, lower = list(continuous = wrap("smooth", method = "lm")))
g

を使ってみることもできますmethod="loess"が、結果は講義で与えられたものとは少し異なります。method = "lm"私が見るように、より適しているかもしれません。

于 2016-08-12T08:42:32.830 に答える