2015-08-24 62 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