【发布时间】:2015-07-05 20:07:04
【问题描述】:
基本上,我有几个实验 (SITEs) 跨越了几年,每年都有自己的平均值和标准误差(基于每个重复的几次),我想计算总平均值和标准每个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治疗的测量次数我需要平均为。另一方面,在每一年中,每个ANPPmean 和ANPP.se都基于多个重复或绘图,这是 SE 中包含的样本量,但未在任何列中指定。这两种样本量中的哪一种是我需要的?
谢谢
【问题讨论】:
-
variance of A+B=variance of A+variance of B+ co-variance of A and B?.见en.wikipedia.org/wiki/Variance -
@Legalizelt n 在 SITE 之间是不同的,但在 SITE 内的 CO2 处理之间是相同的。我不知道如何计算加权平均值
-
“n”=样本大小,抱歉
-
我不知道我需要加权的样本量是每次处理的重复次数还是每次处理的数据年数......
-
这听起来更像是一个统计建议,而不是编程建议。你能记下你想使用的完整公式吗?
标签: r function dplyr standard-error