2013-03-07 17 views
14

ランダムなサンプルを作成してプロットし、奇妙な動作に気づいていました。サンプリングされた値がggplot2をロードした後に異なっていた:`sample()`は同じ `set.seed() 'で異なる値を返します

set.seed(111) 
library(ggplot2) 
sample(1:10, 10) 
# [1] 8 4 5 3 7 1 6 2 10 9 

set.seed(111) 
sample(1:10, 10) 
# [1] 6 7 3 4 8 10 1 2 9 5 

私は簡単に十分なこの動作を回避することができますが、シード値を変更するにはggplot2のための何らかの理由があるのでしょうか?

+0

...ヒントをオフにする方法を説明しますことを一種の面白いですシード値 - それはあなたの前に乱数を得ることです。 –

+0

両方の結果の再現性をテストした場合、 'ggplot2'がランダムシードで何か(繰り返し可能)を行っているという強い示唆があったでしょう。実験はいつも良いです:-) –

答えて

15

私はRのチャットルームの1つでこれについていくつかの議論を見たと思います:ggplot2は、提供したいチップを決定するために乱数ジェネレータを呼び出します。特に

、これはggplot2:::.onAttachです:

function (...) 
{ 
    if (!interactive() || stats::runif(1) > 0.1) 
     return() 
    tips <- c("Need help? Try the ggplot2 mailing list: http://groups.google.com/group/ggplot2.", 
     paste("Find out what's changed in ggplot2 with\n", "news(Version == \"", 
      utils::packageVersion("ggplot2"), "\", package = \"ggplot2\")", 
      sep = ""), "Use suppressPackageStartupMessages to eliminate package startup messages.") 
    tip <- sample(tips, 1) 
    packageStartupMessage(tip) 
} 

それが変更に関するものではありませんランダムに生成されたヒントの一つは

+0

起動時や接続時にヒントを与えるggplot2を経験したことはありませんが、そのオプションがあれば理にかなっています。説明をありがとう。 – N8TRO

+0

まあ、あなたは時間の10%のヒントを得るだけです...そして最近のバージョンでのみ、私は思います。 –

+4

少なくとも15%のチップを付けてはいけませんか? –

関連する問題