我初學R和我需要這個問題一點幫助列表和** **貼:如何創建多個向量與** **名稱中的R
創建一個名爲互可操作性框架,其中包含列表每個均勻分佈(runif)的20個元素的1000個向量。將矢量從vect1,vect2 ......命名爲vect1000。查看功能名稱和粘貼。
我只是這樣做:
unif <- NULL
for(i in 1:1000){unif[i]<- list(runif(i))}
感謝
我初學R和我需要這個問題一點幫助列表和** **貼:如何創建多個向量與** **名稱中的R
創建一個名爲互可操作性框架,其中包含列表每個均勻分佈(runif)的20個元素的1000個向量。將矢量從vect1,vect2 ......命名爲vect1000。查看功能名稱和粘貼。
我只是這樣做:
unif <- NULL
for(i in 1:1000){unif[i]<- list(runif(i))}
感謝
有幾件事情: 要添加到列表中,你要初始化空單第一
unif <- list()
然後,增量編輯/添加/刪除列表元素,我們使用雙括號的子集方法[[
。
你說你想每個矢量20個unif元素。 runif的第一個參數是大小 - 所以你想在那裏 - 不是'我'
然後,創建每個新的列表元素後,我們使用名稱來更改使用paste0創建一個新的名稱。
for(i in 1:1000){unif[[i]] <- runif(20)}
names(unif) <- paste0("vect", 1:1000)
unif
非常感謝你 有幫助 – Polonio210
在運行循環之前分配列表長度會提高效率。 –
已編輯,以便名稱實際上正常工作。正如Rich所說,你可以使用unif < - rep(list(rep(NA,20)),1000)等方式初始化列表長度,但我不知道在這個級別的進程中是否真的有速度提升 –
這通常是好的形式來標記家庭作業幫助。 – hrbrmstr
從哪裏開始......在你的代碼中,runif(i)會做什麼? – G5W
'replicate'比'for'更好。 – alistaire