2017-06-15 27 views
-3

这是一个非常大的数据集,我试图摆脱在R中编写循环。寻找一种方法来攻击我通常会使用嵌套循环去做。如何使用应用系列来平均R中的多个条件参数

对于置信列中的每个唯一值,我需要提取置信列中所有其他行的行索引。与该值相匹配。例如,第一次出现(50)将返回1,7,9。然后,使用这些指数,我想平均seqs列的值。在这里,第一次出现(50)将返回1980,7357和3008,然后对这些进行平均。缩进输出将是一个包含2列的数据框:其中一列具有用于置信度的唯一值列表,另一列列出每个唯一置信度值的平均值#seqs的相应列表。

输入

#seqs  confidence 
1980  50 
1088  52 
1099  52 
2000  42 
7009  45 
1092  48 
7357  50 
5909  42 
3008  50 

输出

ave.#seqs  confidence 
4115   50 
1093.5  52 
3954.5  42... 
+2

链接的帖子是关于'sum',只是将其改为'mean'。 – zx8754

回答

-1

考虑到这是一个 “非常大的数据集”,我建议data.table解决方案。

library(data.table) 
> setDT(data)[, mean(seqs), by=confidence] 
    confidence  V1 
1:   50 4115.0 
2:   52 1093.5 
3:   42 3954.5 
4:   45 7009.0 
5:   48 1092.0 

解决方案使用dplyr功能或aggregate也将工作,但他们效率较低。

+1

downvote downvoted问题的有效答案是否传统?这对我来说没有多大意义。 – svenhalvorson