我正在尝试对样本进行矢量化:从同一总体中抽取样本多次,每次的样本量不同。
我有一个向量a = c(boo = 5, foo=7)
和b =LETTERS[1:10]
我想创建一个列表,其值从b中采样,其中采样大小由a的值决定。
我试过mapply(sample, b, size = a)
,但它不工作…
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