24

コードの残りの部分を実際にランダム化するために、特定の行の後に set.seed() のスコープを終了したいと思います。これは、set.seed() を "rnorm" (4 行目) では機能させたいが、"nrow" (9 行目) では機能させたくない例です。

set.seed(2014)
f<-function(x){0.5*x+2}
datax<-1:100
datay<-f(datax)+rnorm(100,0,5)
daten<-data.frame(datax,datay)
model<-lm(datay~datax)
plot(datax,datay)
abline(model)
a<-daten[sample(nrow(daten),20),]
points(a,col="red",pch=16)
modela<-lm(a$datay~a$datax)
abline(modela, col="red")

提案をありがとう、本当に!

4

4 に答える 4

21

現在のシステム時間を使用して、新しい一意のランダム シードを導入してシードを「元に戻す」だけです。

set.seed(Sys.time())

さらに精度が必要な場合は、システムのタイムスタンプをミリ秒単位で取得することを検討してください(R のsystem(..., intern = TRUE)関数を使用します)。

于 2014-03-29T07:46:28.160 に答える
-2

set.seed() は、ランダムなサンプルを含む最初の行でのみ機能し、次の次のコマンドには影響しません。他の行でも機能させたい場合は、set.seed 関数を同じ「シード」パラメーターで呼び出す必要があります。

于 2014-03-29T08:04:25.520 に答える