我正在尝试对样本进行矢量化:来自同一群体的样本数次,每次都是不同的样本量。
我有一个向量a = c(boo = 5, foo=7)
和b =LETTERS[1:10]
。
我想创建一个列表,其值从b中采样,其中采样大小由a的值确定。
我已经尝试了mapply(sample, b, size = 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