基本上,我有几个SITE
跨越几年的实验,每年都有自己的平均值和标准误差(基于每个重复的几个),我想计算每个的总平均值和标准误差SITE
。大均值似乎相当简单(平均均值?),但大标准误差对我来说不太直观。如何创建一个函数来计算与 dplyr 一起使用的大 SE?我的数据的简化版本如下:
> print(tbl_df(df), n=40)
Source: local data frame [76 x 8]
SITE YEAR Myc CO2 N ANPP ANPP.se nyears
1 Placerville 1991 ECM elev Nlow 0.8100 0.14000 3
2 Placerville 1991 ECM amb Nlow 0.5400 0.07000 3
3 Placerville 1992 ECM elev Nlow 53.1200 11.83000 3
4 Placerville 1992 ECM amb Nlow 26.9000 3.28000 3
5 Placerville 1993 ECM elev Nlow 1068.3000 183.80000 3
6 Placerville 1993 ECM amb Nlow 619.0000 118.90000 3
7 Placerville 1991 ECM elev Nhigh 1.5700 0.26000 3
8 Placerville 1991 ECM amb Nhigh 1.2800 0.17000 3
9 Placerville 1992 ECM elev Nhigh 75.4300 10.29000 3
10 Placerville 1992 ECM amb Nhigh 56.2700 7.34000 3
11 Placerville 1993 ECM elev Nhigh 2118.9000 696.10000 3
12 Placerville 1993 ECM amb Nhigh 1235.8000 260.40000 3
13 Jasper_FACE 1999 AM amb Nlow 386.3371 34.92557 5
14 Jasper_FACE 2000 AM amb Nlow 551.2848 124.64485 5
15 Jasper_FACE 2001 AM amb Nlow 552.1139 56.65156 5
16 Jasper_FACE 2002 AM amb Nlow 410.7524 27.64737 5
17 Jasper_FACE 2003 AM amb Nlow 503.6037 57.68552 5
18 Jasper_FACE 1999 AM amb Nhigh 680.8551 67.99471 5
19 Jasper_FACE 2000 AM amb Nhigh 480.5723 33.52034 5
20 Jasper_FACE 2001 AM amb Nhigh 744.5131 125.32998 5
21 Jasper_FACE 2002 AM amb Nhigh 603.6049 62.19760 5
22 Jasper_FACE 2003 AM amb Nhigh 711.5993 142.04351 5
23 Jasper_FACE 1999 AM elev Nlow 488.5912 61.47564 5
24 Jasper_FACE 2000 AM elev Nlow 406.2773 32.90862 5
25 Jasper_FACE 2001 AM elev Nlow 543.3647 55.28956 5
26 Jasper_FACE 2002 AM elev Nlow 480.7108 65.24701 5
27 Jasper_FACE 2003 AM elev Nlow 473.6844 52.01606 5
28 Jasper_FACE 1999 AM elev Nhigh 638.0252 58.34743 5
29 Jasper_FACE 2000 AM elev Nhigh 505.2054 171.62024 5
30 Jasper_FACE 2001 AM elev Nhigh 655.1032 130.01279 5
31 Jasper_FACE 2002 AM elev Nhigh 677.7134 98.84845 5
32 Jasper_FACE 2003 AM elev Nhigh 926.3433 143.26525 5
33 Merrit_Island 1997 ECM amb Nlow 137.0940 22.20700 4
34 Merrit_Island 1998 ECM amb Nlow 296.4870 53.32100 4
35 Merrit_Island 1999 ECM amb Nlow 350.9470 57.85000 4
36 Merrit_Island 2000 ECM amb Nlow 494.6030 66.70200 4
37 Merrit_Island 1997 ECM elev Nlow 203.7970 26.63300 4
38 Merrit_Island 1998 ECM elev Nlow 467.8080 62.33200 4
39 Merrit_Island 1999 ECM elev Nlow 586.8180 91.26500 4
40 Merrit_Island 2000 ECM elev Nlow 866.3460 126.77000 4
我需要在 R 中实现一个函数来在 dplyr 中指定一个函数来计算每个组的总平均值和总 se,如下所示:
tempSE <- df %>% group_by(SITE,CO2,N,nyears) %>%
summarise(ANPP=mean(ANPP),
SD=grand.sd(ANPP.se))
编辑:如果您的答案涉及包含样本量的方程:在数据集上,列nyears
是年数,这是我需要平均的每次测量SITE
和治疗的次数。CO2
另一方面,在每一年中,每个ANPP
平均值ANPP.se
都基于多个重复或图,这是 SE 中包含的样本量,但未在任何列中指定。这两种样本量中的哪一种是我需要的?
谢谢