2017-12-09 4 views
1

出力を別のベクトルに格納して、データをプロットできるようにする必要があります(yearsreproduction_rate)。現時点では、最終的な年だけが格納され、年の1:20は格納されません。コンソールからコピーして貼り付ける代わりに、出力値を1つの外部ベクトルに格納するgrep/regexを使用する方法はありますか?ループからのrnorm出力を別のベクターに保存するにはどうしたらいいですか?

N <- 1000 
years <- 1:20 
storage <-() 
for (year in years) { 
    reproduction_rate <- rnorm(n=1, mean=1, sd=0.4)+N 
    phrase <- paste("In year", year, "the population rate was", reproduction_rate) 
    print(paste("In year", year, "the population rate was", reproduction_rate)) 
    storage <- (reproduction_rate) 
} 

答えて

1

あなたは印刷を見送ることができた場合は、

storage <- rnorm(n=20, mean=1, sd=0.4)+N 

が動作します。それ以外の場合は、

storage <- numeric(length(years)) 
for (i in seq_along(years)) { 
    storage[i] <- rnorm(...) 
    print("stuff",years[i],...) 
} 

限り、あなたは乱数ジェネレータを呼び出して、適切にシードを設定し、それとの間に他のコマンドを実行しないように、あなたはあなたがランダムに選ぶかどうかを正確に同じ答えを得ることが保証しています数字は一度に1つずつ、または一度に1つずつ。すべてを一度に :時

N <- 1000 
nyear <- 20 
years <- 1:nyear 
set.seed(101) 
storage1 <- rnorm(n=nyear, mean=1, sd=0.4)+N 
for (i in seq_along(years)) { 
    print(paste("year",years[i],": reproduction=",storage1[i])) 
} 

ワン:

set.seed(101) 
storage2 <- numeric(nyear) 
for (i in seq_along(years)) { 
    storage2[i] <- rnorm(1,mean=1,sd=0.4)+N 
    print(paste("year",years[i],": reproduction=",storage2[i])) 
} 

比較:

all.equal(storage1,storage2) ## TRUE 
+0

真実ではない、上記の実証されたように。 –

+0

申し訳ありませんがベン、私はあなたが返信を見て前にこれを書いた!私は削除されます。手伝ってくれてどうもありがとう! –

関連する問題