2017-05-28 41 views
0

我初學R和我需要這個問題一點幫助列表和** **貼:如何創建多個向量與** **名稱中的R

創建一個名爲互可操作性框架,其中包含列表每個均勻分佈(runif)的20個元素的1000個向量。將矢量從vect1,vect2 ......命名爲vect1000。查看功能名稱和粘貼。

我只是這樣做:

unif <- NULL 
for(i in 1:1000){unif[i]<- list(runif(i))} 

感謝

+0

這通常是好的形式來標記家庭作業幫助。 – hrbrmstr

+0

從哪裏開始......在你的代碼中,runif(i)會做什麼? – G5W

+1

'replicate'比'for'更好。 – alistaire

回答

0

有幾件事情: 要添加到列表中,你要初始化空單第一

unif <- list() 

然後,增量編輯/添加/刪除列表元素,我們使用雙括號的子集方法[[

你說你想每個矢量20個unif元素。 runif的第一個參數是大小 - 所以你想在那裏 - 不是'我'

然後,創建每個新的列表元素後,我們使用名稱來更改使用paste0創建一個新的名稱。

for(i in 1:1000){unif[[i]] <- runif(20)} 
names(unif) <- paste0("vect", 1:1000) 
unif 
+0

非常感謝你 有幫助 – Polonio210

+0

在運行循環之前分配列表長度會提高效率。 –

+0

已編輯,以便名稱實際上正常工作。正如Rich所說,你可以使用unif < - rep(list(rep(NA,20)),1000)等方式初始化列表長度,但我不知道在這個級別的進程中是否真的有速度提升 –

相關問題