基本上,我有几个实验(SITE
s)跨越几年,每年都有自己的平均值和标准误差(基于每个重复几次),我想计算宏观均值每个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中指定一个函数来计算每个组的宏均值和宏观值,如下所示:
tempSE <- df %>% group_by(SITE,CO2,N,nyears) %>%
summarise(ANPP=mean(ANPP),
SD=grand.sd(ANPP.se))
编辑:如果您的答案涉及包含样本大小的公式:在数据集上,列nyears
是年数,即每SITE
和{{1}的测量数治疗我需要平均。另一方面,在每年内,每个CO2
平均值和ANPP
基于多个重复或绘图,这是SE中包含的样本大小,但未在任何列中指定。我需要这两种样本中的哪一种?
由于
答案 0 :(得分:0)
如果我们对样本量没有任何了解,则无法计算宏均值或宏标准误差。这是一个小例子:硬币翻转,将“头”计为1,将“尾”计为0.我们的第一个样本的平均值为0.45,第二个样本的平均值为0.65。如果两个样本具有相同的大小,则平均值为0.55。但如果样本量分别为900和100,我们有405 + 65“头”,所以平均值为0.47。 如果样本大小已知,则可以按如下方式计算大均值:
要计算标准错误,请按以下步骤操作:
为此编写R函数应该很简单。但我们需要样本量,至少要达到一个共同因素。