2015-10-14 60 views
0

我試圖向量化樣本:幾次來自同一羣體的樣本,每次樣本量不同。矢量化樣本函數:從樣本羣體中抽取樣本並創建抽樣矢量列表

我有一個載體a = c(boo = 5, foo=7)b =LETTERS[1:10]

我想創建一個列表,其中取值從b取值,其中取樣大小由a的值確定。

我試過mapply(sample, b, size = a),但它不工作...

+1

嘗試'mapply(函數(X,Y)的樣品(X,大小= Y),列表(b)中,)' –

+0

好吧,就算我從b中抽樣,'mapply(function(x,y)sample(x,y),b,a)'似乎不起作用。 –

+0

刷新屏幕:) –

回答

1
mapply(function(x,y) sample(x, size=y), list(b), a) 
[[1]] 
[1] "D" "F" "H" "A" "C" 

[[2]] 
[1] "C" "D" "B" "I" "F" "G" "E" 

mapply需要每個在...參數提供的對象中的第一個元素,並在他們的應用功能。

我們必須使用list(b),以便它將被用作一個單獨的元素。如果我們只在那裏輸入b,那麼功能將嘗試b[1]等等。

我們可以想象每次迭代中,像這樣:

#mapply form 
mapply(myfunc, x, y) 

#first time 
myfunc(x[1], y[1]) 

#second time 
myfunc(x[2], y[2]) 

#and so on 
+0

我想知道,有沒有辦法使用矢量的名稱作爲列表項的名稱?當然,我可以使用'names(list_a_b)< - 名稱(a)' –

+1

是的,這是最好的方法。 –