2015-08-24 39 views
-1

输入线的平均值:查找已复制变量

如何拍摄这是在Var1重复行的平均水平。

Var1   Var2   Var3 value 
1 hsa-let-7a-5p hsa-let-7a-1 124G 15.1096198266 
2 hsa-let-7a-5p hsa-let-7a-2 124G 15.1100852974 
3 hsa-let-7a-5p hsa-let-7a-3 124G 15.1092706389 
24 hsa-miR-125b-5p hsa-mir-125b-1 124G 7.785156036 
25 hsa-miR-125b-5p hsa-mir-125b-2 124G 7.785156036 

输出:

Var1    Var3 value 
    hsa-let-7a-5p  124G "Average of hsa-let-7a in Var2 in input" 
    hsa-miR-125b-5p  124G "Average of hsa-mir-125b in Var2 in input" 
+2

这个问题已经在SO上回答了几次。试试:'aggregate(df $ value,by = list(df $ Var1),mean)'。使用'data.table','dplyr'软件包 –

回答

1

我将与plyr包在这里工作。

require(plyr)  
df2 <- ddply(df,.(Var1,Var3),summarize, Avg=mean(value)) 

你的国家,你想保持变量,你可以计算出任何你想要的其他列的均值,SD或在方括号中。然而,大数据集plyr有时会变慢。

dplyr包预计会更好,但我真的没有任何经验。

1

你没有说在新的概括的形式使用的值Var3,所以我会假设只是第一个Var3(不为当前样本事在哪里都一样)。

require(dplyr) 
newdf <- df %>% 
    group_by(Var1) %>% 
    summarize(Var3=first(Var3), 
      value=mean(value)) 

输出

> newdf 
Source: local data frame [2 x 3] 

      Var1 Var3  value 
1 hsa-let-7a-5p 124G 15.109659 
2 hsa-miR-125b-5p 124G 7.785156 
+1

也可以解决很多问题,而不是回答100次提出的问题,请考虑指出他应该搜索的OP,并提供相应的链接以避免101主题。 –

+0

指出,它只是比我搜索重复的速度更快......我想我可以忽略这个问题 – Ricky