如何在R中使用组同时计算平均值,CV和标准偏差

时间:2015-03-07 16:01:10

标签: r

我想同时计算多于1个变量的均值,cv和标准差,然后对输出进行分组(使用by语句)。下面是我的数据的快照。

CLT             SOURCE          LD     BRX  

  Bt02Sm86(Lg)  GH801-2@ S7        1.5   8.6 
  Bt02Sm86(Lg)  GH801-2@ S7        1.3   8.9  
  Bt02Sm86(Lg)  GH801-2@ S7        1.8   8.7  
  Bt14Lg 26x36  GH811x810F1        1.4   9.6
  Bt14Lg 26x36  GH811x810F1        1.6  10.2   
  Bt03Sm86(Lg)  GH802-1@ S7        1.3   9.9
  Bt03Sm86(Lg)  GH802-1@ S7        1.2   8.9
  Bt03Sm86(Lg)  GH802-1@ S7        1.3   9.3   
  Bt18Lg 15x36  GH818x819F1        1.3   9.7 
  Bt18Lg 15x36  GH818x819F1        1.1   8.5 
  Bt18Lg 15x36  GH818x819F1        1.6   9.3   
  Bt19Lg 15x39  GH820x821F1        1.3   9.1
  Bt19Lg 15x39  GH820x821F1        1.5   9.3  

我希望我的输出看起来像以下方式

 CLT            SOURCE          mean_LD  cv_LD  std_LD  mean_BRX  cv_ld std_brx

Bt02Sm86(Lg)    GH801-2@ S7      xx.xx    xx.xx  xx.xx   xx.xx    xx.xx  xx.xx
Bt14Lg 26x36  GH811x810F1        xx.xx    xx.xx  xx.xx   xx.xx    xx.xx  xx.xx
Bt03Sm86(Lg)  GH802-1@ S7        xx.xx    xx.xx  xx.xx   xx.xx    xx.xx  xx.xx
Bt18Lg 15x36  GH818x819F1        xx.xx    xx.xx  xx.xx   xx.xx    xx.xx  xx.xx 
Bt19Lg 15x39  GH820x821F1        xx.xx    xx.xx  xx.xx   xx.xx    xx.xx  xx.xx 

感谢任何建议

1 个答案:

答案 0 :(得分:2)

尝试

cv <- function(x) 100*( sd(x)/mean(x))
library(dplyr)
 df1 %>% 
     group_by(CLT, SOURCE) %>% 
     summarise_each(funs(mean, sd, cv))