plot
大きなデータセットをプロットする方法を尋ねるのではなく、大きなオブジェクトをプロットするときに、多くのプロットを生成するコードが打撃を受けないようにラップしたいと思います。すべての機能が保持されるように非常に単純な方法でラップplot
するにはどうすればよいでしょうか。
このコードは へのごく普通の呼び出しに対しては機能しますが、 (以下を参照)plot
と同じ一般性が欠けています。plot
myPlot <- function(x, ...){
isBad <- any( (length(x) > 10^6) || (object.size(x) > 8*10^6) || (nrow(x) > 10^6) )
if(is.na(isBad)){isBad = FALSE}
if(isBad){
stop("No plots for you!")
}
return(plot(x, ...))
}
x = rnorm(1000)
x = rnorm(10^6 + 1)
myPlot(x)
これが失敗する例:
x = rnorm(1000)
y = rnorm(1000)
plot(y ~ x)
myPlot(y ~ x)
plot
すべての引数を通過しながら、このデータのチェックをプロットできるようにラップする簡単な方法はありますか? そうでない場合はどうggplot2
ですか?私は機会均等の非プロッターです。(データセットが大きい場合は、hexbin、サブサンプリング、密度プロットなどを使用しますが、ここでは焦点を当てていません。)
注 1: アイデアをテストするときは、myThreshold <- 1000
1M を超えるサイズではなく、サイズが 100 を超える (または変数を設定する) ことをお勧めします。:)