矢量化样本函数:来自样本总体的样本并创建采样矢量列表

时间:2015-10-14 12:54:46

标签: r vectorization apply sample

我正在尝试对样本进行矢量化:来自同一群体的样本数次,每次都是不同的样本量。

我有一个向量a = c(boo = 5, foo=7)b =LETTERS[1:10]

我想创建一个列表,其值从b中采样,其中采样大小由a的值确定。

我已经尝试了mapply(sample, b, size = a),但它不起作用......

1 个答案:

答案 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