1
假人示例的列表的:如何拉出來的值基於列表索引的向量中的R
1> L = vector('list',100)#prefill empty list
1> for (i in 1:100){
1+ L[[i]]$letter = letters[rgeom(1,.5)+1]#populate it with a letter
1+ L[[i]]$number = runif(1)#and a number
1+ }
1> i = ceiling(runif(100,0,100))#an (arbitrary) vector of indices
1> x = L[[i]]$letter #I want the ith letter
Error in L[[i]] : no such index at level 2
我想x
包含的L
的i
th元素的letter
對象。 (i
的順序與x
的索引順序沒有任何關係)
什麼是不帶回路的好方法?
這裏是複製/粘貼從我的編輯,而不是我的終端窗口,對於那些誰可能更容易:
L = vector('list',100)
for (i in 1:100){
L[[i]]$letter = letters[rgeom(1,.5)+1]
L[[i]]$number = runif(1)
}
i = ceiling(runif(100,0,100))
x = L[[i]]$letter
你的'1''和'+'在行首會讓你很難複製粘貼並嘗試你的代碼 – Frank
@Frank你怎麼樣? –
當然,謝謝。問題似乎是:'我'是一個矢量,而不是一個數字,而[[]]'只需要一個數字。如果你想抓住每個數字的'letter','sapply(L [i],''[[\',「letter」)'應該工作。不知道這是你之後的事情。 – Frank