Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为R中组的每个成员分配值的快速方法_R_Loops_Optimization - Fatal编程技术网

为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]