-
Notifications
You must be signed in to change notification settings - Fork 1
/
ARA.R
110 lines (83 loc) · 4.08 KB
/
ARA.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
##################################################
### Schefferville Experiment on Climate Change (SEC-C)
### basic analyses of experimental data
### Acetylene Reduction Assay (ARA: N-fixation) @ time #s
### Jonathan Whiteley R v2.12 2011-03-28
##################################################
## INITIALISE
##################################################
## This script is used in a generic way for most univariate analyses
## Working Directory: see lib/init.R below
if (FALSE) { # do not run automatically
setwd("./ SECC/") # relative to my usual default wd in R GUI (Mac).
getwd() # Check that we're in the right place
}
## Load data, functions, etc. Includes rm(list=ls()) to clear memory
source('./lib/init.R')
##################################################
## CONFIGURE BASIC ANALYSIS
##################################################
### Response Variable *****
Y.col <- 'ARA.m' # Column to analyze as response variable *****
Y.use <- 'Y.sqrt' # Which transformation is being used (for labels)? *****
### Load default settings (based on response variable) *****
source("./SECCanova/SECC - ANOVA settings.R", echo = FALSE)
##================================================
## CUSTOM SETTINGS
##================================================
## delete lines to use the defaults.
## Specify which treatment levels to include (by index is probably easiest)
Time.use <- levels(SECC$Time)[1] # Time (index: 1-3) to include in this run
Chamber.use <- levels(SECC$Chamber)[c(1, 3)] # Chamber treatments to include
## Define Labels
Y.units <- bquote( sqrt(.(Y.units)) ) # store as quote(expression) *****
## Output Results?
Save.results <- TRUE
##================================================
## CUSTOM CALCULATIONS
##================================================
## !is.na(SECC$Time) ; NAs in factors are annoying
SECC.prime <- SECC # save a copy of the original for reference.
# str(SECC)
sampleA <- 6 # sample Area, in cm^2: pi * (2.75/2)^2 ; pi * (2.8 / 2)^2
# 6 for rough estimate of inner tube diameter (2.8 cm): pi*(2.8/2)^2,
# or 6.4 for 20 shoots, based on density survey.
sample.to.m2 <- (100*100)/sampleA # scale sample area, in cm^2 to m^2
sample_ml <- 50 # 50 ml sample
ARA.m2 <- sampleA/(100*100) # ARA sample area, in (cm^2 to) m^2
patchA <- pi * (12.5^2) # patch area
patch.m2 <- patchA/(100*100) # patch sample area, in (cm^2 to) m^2
Nfix.ARA.ratio <- 1/3 # ratio of N-fixation : ARA.
SECC <- within( SECC, {
## change negative ARA values to 0 - should I wait until after aggregation?
ARA.ml[ARA.ml < 0] <- 0
ARA.m[ ARA.m < 0] <- 0
ARA.g[ ARA.g < 0] <- 0
Nfix <- ARA.m * Nfix.ARA.ratio
})
### Load default Labels - dependent on above settings. *****
source("./SECCanova/SECC - ANOVA labels.R", echo = FALSE)
##================================================
## CUSTOM LABELS
##================================================
##################################################
### RUN STANDARD nested ANOVA
##################################################
### Run analysis on each Time point in sequence.
for ( Time.i in 1:length(levels(SECC$Time)) ) {
## Specify which treatment levels to include (by index is probably easiest)
Time.use <- levels(SECC$Time)[Time.i] # Time (index: 1-3) to include in this run
cat("\n\n\nProcessing Time:", Time.use, "\n")
## Load default Labels - dependent on above settings. *****
source("./SECCanova/SECC - ANOVA labels.R", echo = FALSE)
## RUN STANDARD nested ANOVA
source("./SECCanova/SECC - nested ANOVA.R", echo = FALSE)
}
###===============================================
### Include Time as a factor in nested ANOVA
###===============================================
## Note that Samples at different times are actually independent
## in this design, due to destructive sampling.
Time.use <- levels(SECC$Time) # Include *ALL* Times (as a Treatment)
source("./SECCanova/SECC - ANOVA labels.R", echo = FALSE) # Load default Labels. *****
source("./SECCanova/SECC - nested ANOVA.R", echo = FALSE) # RUN STANDARD nested ANOVA