簡體   English   中英

將向量從循環保存到列表或數據中

[英]Save vectors from loop into a list or data.frame R

我必須生成一些數學運算的多次迭代,每次導致一個長度為100的向量。

在運行for循環后,我想將n次迭代的每個向量存儲到列表或data.frame中。

基本上,將我的結果(長度為100的向量)保存到列表中,以轉換為矩陣或直接轉換為矩陣。

例如:

for (i in 1:10){
     r <- rnorm(100,0,1)
     }

在10個迭代的每一個中,r生成長度為100的向量。最終的期望輸出是具有100行和10列的data.frame,每列代表每個生成的迭代。

如何建立這樣的矩陣或data.frame?

非常感謝

我們可以使用replicate

replicate(10, rnorm(100))

如果需要,我們可以將其轉換為數據幀(顯示n = 5一個較小示例)

set.seed(1234)
as.data.frame(replicate(10, rnorm(5)))

#       V1      V2       V3      V4      V5       V6      V7      V8      V9     V10
#1 -1.2071  0.5061 -0.47719 -0.1103  0.1341 -1.44820  1.1023 -1.1676  1.4495 -0.9685
#2  0.2774 -0.5747 -0.99839 -0.5110 -0.4907  0.57476 -0.4756 -2.1800 -1.0686 -1.1073
#3  1.0844 -0.5466 -0.77625 -0.9112 -0.4405 -1.02366 -0.7094 -1.3410 -0.8554 -1.2520
#4 -2.3457 -0.5645  0.06446 -0.8372  0.4596 -0.01514 -0.5013 -0.2943 -0.2806 -0.5238
#5  0.4291 -0.8900  0.95949  2.4158 -0.6937 -0.93595 -1.6291 -0.4659 -0.9943 -0.4968

使用for循環,您可以執行

# choose number of columns you need
ncolumns <- 10
# generate an "empty" matrix
m <- matrix(NA, 100, ncolumns)
# run for loop
for (i in 1:ncolumns){
  m[ , i] <- rnorm(100,0,1)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM