我想同时计算多于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
感谢任何建议
答案 0 :(得分:2)
尝试
cv <- function(x) 100*( sd(x)/mean(x))
library(dplyr)
df1 %>%
group_by(CLT, SOURCE) %>%
summarise_each(funs(mean, sd, cv))