[英]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.