为R中组的每个成员分配值的快速方法
我需要给组中的每个成员赋予权重。 我做了以下循环来创建为R中组的每个成员分配值的快速方法,r,loops,optimization,R,Loops,Optimization,我需要给组中的每个成员赋予权重。 我做了以下循环来创建权重\u ind向量(单个权重的向量),但我的循环太慢(2000个个体的循环时间为2秒): 在我的例子中,我可以使用哪个更快的函数?由于组从1开始编号,您可以使用组向量按组对权重向量进行索引 weights_ind = weights_by_group[groups] 在我的电脑上,对于2000个人来说,这大约需要10微秒 如果您的组不是数字组,您可以使用组标识符按组命名weights\u向量,并仍然使用groups索引: groups =
权重\u ind
向量(单个权重的向量),但我的循环太慢(2000个个体的循环时间为2秒):
在我的例子中,我可以使用哪个更快的函数?由于组从1开始编号,您可以使用
组
向量按组对权重
向量进行索引
weights_ind = weights_by_group[groups]
在我的电脑上,对于2000个人来说,这大约需要10微秒
如果您的组不是数字组,您可以使用组标识符按组命名weights\u
向量,并仍然使用groups
索引:
groups = sample(letters[1:n.group], n.tot, replace = TRUE)
weights_by_group = rexp(n.group, rate = 1)
names(weights_by_group) = letters[1:n.group]
weights_ind = weights_by_group[groups]
完美的这正是我所需要的。非常感谢,新年快乐
groups = sample(letters[1:n.group], n.tot, replace = TRUE)
weights_by_group = rexp(n.group, rate = 1)
names(weights_by_group) = letters[1:n.group]
weights_ind = weights_by_group[groups]