soilMineralVars <- dataframe %>%
select( contains( "soil10.loi.xrf" ),contains( "soil20.loi.xrf" ) ) %>%
select( - contains("orig") ) %>%
colnames
studiedVariables <- c( "crop",
"climateRegion",
"variety",
"cropColor",
"brix",
"sample_source"
)
studiedVariables <- c( studiedVariables, soilMineralVars )
dataframe <- dataframe %>%
mutate_at( vars( !!soilMineralVars ), as.double )
generalMediansTable <- tibble()
soilTables <- function( variable, factors = factorsList, data = dataframe, imgBaseDir="./graphics/soil/", reportToGenTable = TRUE ) {
output <- list()
filtArray <- tribble(
~ variable, ~ value,
## "crop", selCrop
)
print("explained var")
print( variable )
cropDF <- data %>%
select( !!studiedVariables,
!!factors,
sourceUID
)
output$df <- cropDF
freqsTable90 <- frequencyDelta( explainedVar = variable,
data = cropDF,
filteringArray = filtArray,
explicativeFactors = factors)
output$table90 <- freqsTable90
freqsTable75 <- frequencyDelta( explainedVar = variable,
data = cropDF,
filteringArray = filtArray,
explicativeFactors = factors,
rangeMin = 0.75)
output$table75 <- freqsTable75
freqsTable15 <- frequencyDelta( explainedVar = variable,
data = cropDF,
filteringArray = filtArray,
explicativeFactors = factors,
rangeMin = 0,
rangeMax = 0.15
)
output$table15 <- freqsTable15
output$mediansPractices <- pmap_df( enframe( farmPracticesCols, name = NULL ), ~ positionStatisticsByLogicColumn(
data = cropDF,
column = .x,
explained = variable,
center = "farm_practices.none"
)
) %>% filter( N != 0 )
output$mediansAmendments <- pmap_df( enframe( amendmentsCols, name = NULL ), ~ positionStatisticsByLogicColumn(
data = cropDF,
column = .x,
explained = variable,
center = "amendments.none"
)
) %>% filter( N != 0 )
if ( reportToGenTable ) {
medPract <- output$mediansPractices %>% mutate( explained = variable,
## crop =selCrop,
family = "practices"
)
medAmend <- output$mediansAmendments %>% mutate( explained = variable,
## crop =selCrop,
family = "amendments"
)
generalTable <- bind_rows( generalMediansTable, medPract, medAmend )
output$generalTable <- generalTable
}
return( output )
}
## plan( multisession, workers=20 )
## tablesObjectList <- future_map( soilMineralVars, ~ soilTables( variable = .x ) )
## write_rds( tablesObjectList, path = "../bigFiles/tablesObjectListSoilMinerals.Rds" )
tablesObjectList <- read_rds( "../bigFiles/tablesObjectListSoilMinerals.Rds" )
generalMediansTable <- tibble()
for ( entry in tablesObjectList ) {
generalMediansTable <- bind_rows( generalMediansTable, entry$generalTable )
## speechTable <- bind_rows( speechTable, entry$speechTable )
}
generalMediansTable <- generalMediansTable %>% unique
synthesisTable <- generalMediansTable %>%
filter( isRelevant == TRUE & !is.na( isRelevant ) ) %>%
select( factor, family, explained, N, p.value, intervalMin, intervalMax ) %>%
pivot_wider( names_from = c( explained ), values_from = c( N, p.value, intervalMin, intervalMax ) ) %>%
mutate( factor = str_replace( string = factor, pattern = "(amendments.)|(farm_practices.)", replacement = "" ) )
amendmentsSynthesis <- synthesisTable %>% filter( family == "amendments" )
practicesSynthesis <- synthesisTable %>% filter( family == "practices" )
write_rds( x = amendmentsSynthesis, path=".soilAmendmentsSynthesisTable.Rds" )
write_csv( x = amendmentsSynthesis, path=".soilAmendmentsSynthesisTable.csv" )
write_rds( x = practicesSynthesis, path=".soilPracticesSynthesisTable.Rds" )
write_csv( x = practicesSynthesis, path=".soilPracticesSynthesisTable.csv" )
referenceValues <- generalMediansTable %>%
filter( str_detect( string = factor, pattern="none" ) ) %>%
select( factor, "HL Estimate", explained, family ) %>%
mutate( reference = .data[["HL Estimate"]] ) %>%
select( explained, family, reference )
generalMediansTable <- left_join( x= generalMediansTable, y = referenceValues, by=c( "explained", "family") )
relevantsTable <- generalMediansTable %>%
filter( observedUIDs >= 3 ) %>%
mutate( shiftPercentage = .data[['HL Median Shift Estimate']] / reference,
shiftPercentage = round( shiftPercentage * 100, digits = 2 )
## shiftPercentage = round( shiftPercentage * 100, digits = 2 ) %>% str_c( ., "%", sep ="" )
) %>%
select( factor, explained, shiftPercentage, family ) %>%
pivot_wider( names_from = explained, values_from = c( shiftPercentage ) ) %>%
mutate( factor = str_replace( string = factor, pattern = "(amendments.)|(farm_practices.)", replacement = "" ) ) %>%
select( factor, family, contains("10"), contains("20") )
sampleSizesTable <- generalMediansTable %>%
filter( observedUIDs >= 3 ) %>%
select( factor, explained, family, N ) %>%
pivot_wider( names_from = c( explained ), values_from = c( N ) ) %>%
mutate( factor = str_replace( string = factor, pattern = "(amendments.)|(farm_practices.)", replacement = "" ) ) %>%
select( factor, family, contains("10"), contains("20") )
pValuesTable <- generalMediansTable %>%
filter( observedUIDs >= 3 ) %>%
mutate( p.value = ifelse( p.value > 0.1 & isRelevant == TRUE, 0.09, p.value ) ) %>%
select( factor, explained, family, p.value ) %>%
pivot_wider( names_from = c( explained ), values_from = c( p.value ) ) %>%
mutate( factor = str_replace( string = factor, pattern = "(amendments.)|(farm_practices.)", replacement = "" ) ) %>%
select( factor, family, contains("10"), contains("20") )
relevants <- relevantsTable
pValueAlphaScale <- function( pValue ) {
pValue <- 1 - pValue
if ( pValue >= 0.95 ) { return(1) }
else if ( pValue > 0.90 ) { return(0.70) }
else if ( pValue > 0.8 ) { return(0.60) }
else if ( pValue > 0.5 ) { return(0.4) }
else if ( pValue < 0.1 ) { return(0.1) }
else { return(0.3) }
}
assignBackgroundNonVec <- function( value, pValue ) {
if ( is.na(value) | is.na(pValue) | typeof( value ) != "double" ) { return("none") }
pValue <- pValueAlphaScale( pValue )
if ( value >= 0 ) { return( paste0( "rgba(1,121,11,", pValue ,")" ) ) }
else if ( value < 0 ) { return( paste0( "rgba(255,0,0,", pValue ,")" ) ) }
}
assignBackground <- function( vecsValue, vecsPValue ) {
map2_chr( vecsValue, vecsPValue, assignBackgroundNonVec )
}
assignColorNonVec <- function( value ) {
if ( is.na(value) | typeof( value ) != "double" ) { return("black") }
else if ( value == 0 ) { return("white") }
else if ( value > 0 ) { return("white") }
else if ( value < 0 ) { return("white") }
}
assignColor <- function( vecsValue ) {
vecsValue %>% map_chr( assignColorNonVec )
}
formatCols <- relevants %>% select( -"factor", -"family" ) %>%
colnames
relevantSpecAmendments <- relevants %>% filter( family == "amendments" ) %>% select( - "family" )
sampleSizesAmendments <- sampleSizesTable %>% filter( family == "amendments") %>% select( - "family" )
pValuesAmendments <- pValuesTable %>% filter( family == "amendments") %>% select( - "family" )
for ( col in formatCols ) {
relevantSpecAmendments[[col]] <- cell_spec(
relevantSpecAmendments[[col]],
background = assignBackground( relevantSpecAmendments[[col]], pValuesAmendments[[col]] ),
tooltip = sampleSizesAmendments[[col]] %>% str_c( "Sample size: ", ., sep = "" ) ,
color = assignColor( relevantSpecAmendments[[col]] ),
bold = TRUE
)
}
fullColorAmendments <- relevantSpecAmendments %>%
filter( factor != "none" ) %>%
mutate( factor = str_replace_all( factor, pattern = "_", replacement = " " ) %>% str_to_title( . ) ) %>%
rename_all( ~ str_replace_all( ., pattern = "_", replacement = " " ) %>% str_to_title( . ) ) %>%
kable( escape = FALSE, caption = "Percent of Variation over Median Value" ) %>%
kable_styling( c( "hover", "striped" ),
full_width = FALSE,
fixed_thead = TRUE
) %>%
column_spec( 1, bold = TRUE, border_right = TRUE )
write_rds( fullColorAmendments, path="./soilAmendmentsShiftTable.Rds" )
relevantSpecPractices <- relevants %>% filter( family == "practices" ) %>% select( - "family" )
sampleSizesPractices <- sampleSizesTable %>% filter( family == "practices") %>% select( - "family" )
pValuesPractices <- pValuesTable %>% filter( family == "practices") %>% select( - "family" )
for ( col in formatCols ) {
relevantSpecPractices[[col]] <- cell_spec(
relevantSpecPractices[[col]],
background = assignBackground( relevantSpecPractices[[col]], pValuesPractices[[col]] ),
tooltip = sampleSizesPractices[[col]] %>% str_c( "Sample size: ", ., sep = "" ) ,
color = assignColor( relevantSpecPractices[[col]] ),
bold = TRUE
)
}
fullColorPractices <- relevantSpecPractices %>%
filter( factor != "none" ) %>%
mutate( factor = str_replace_all( factor, pattern = "_", replacement = " " ) %>% str_to_title( . ) ) %>%
rename_all( ~ str_replace_all( ., pattern = "_", replacement = " " ) %>% str_to_title( . ) ) %>%
kable( escape = FALSE, caption = "Percent of Variation over Median Value" ) %>%
kable_styling( c( "hover", "striped" ),
full_width = FALSE,
fixed_thead = TRUE
) %>%
column_spec( 1, bold = TRUE, border_right = TRUE )
write_rds( fullColorPractices, path="./soilPracticesShiftTable.Rds" )
fullColorPractices
Percent of Variation over Median Value
Factor
|
Soil10.Loi.xrf.na
|
Soil10.Loi.xrf.mg
|
Soil10.Loi.xrf.al
|
Soil10.Loi.xrf.si
|
Soil10.Loi.xrf.p
|
Soil10.Loi.xrf.s
|
Soil10.Loi.xrf.k
|
Soil10.Loi.xrf.ca
|
Soil10.Loi.xrf.ti
|
Soil10.Loi.xrf.v
|
Soil10.Loi.xrf.cr
|
Soil10.Loi.xrf.mn
|
Soil10.Loi.xrf.fe
|
Soil10.Loi.xrf.co
|
Soil10.Loi.xrf.ni
|
Soil10.Loi.xrf.cu
|
Soil10.Loi.xrf.zn
|
Soil20.Loi.xrf.na
|
Soil20.Loi.xrf.mg
|
Soil20.Loi.xrf.al
|
Soil20.Loi.xrf.si
|
Soil20.Loi.xrf.p
|
Soil20.Loi.xrf.s
|
Soil20.Loi.xrf.k
|
Soil20.Loi.xrf.ca
|
Soil20.Loi.xrf.ti
|
Soil20.Loi.xrf.v
|
Soil20.Loi.xrf.cr
|
Soil20.Loi.xrf.mn
|
Soil20.Loi.xrf.fe
|
Soil20.Loi.xrf.co
|
Soil20.Loi.xrf.ni
|
Soil20.Loi.xrf.cu
|
Soil20.Loi.xrf.zn
|
Certified Organic
|
0.03
|
0.04
|
-11.63
|
12.87
|
0.02
|
0
|
-16.22
|
-22.22
|
0.01
|
14.26
|
4.49
|
5.94
|
-11.32
|
4.52
|
50.13
|
9.07
|
-30.06
|
0.01
|
-0.01
|
-18
|
5.99
|
0.02
|
0
|
-16.66
|
0
|
-0.01
|
13.08
|
-0.3
|
-1.96
|
-16.95
|
-2.22
|
83.83
|
8.72
|
-24.32
|
Organic
|
-0.02
|
0.01
|
-13.95
|
1.17
|
0
|
3.33
|
-10.81
|
-22.22
|
0.02
|
6.12
|
-11.85
|
-8.62
|
-18.87
|
-2.58
|
43.41
|
7.36
|
-7.76
|
0.01
|
66.61
|
-12
|
0
|
-0.01
|
3.39
|
-11.11
|
-9.09
|
0.01
|
11.25
|
-10.81
|
-7.56
|
-20.34
|
-3.88
|
61.39
|
11.71
|
-11.96
|
Notill
|
0.04
|
66.63
|
-11.63
|
-2.34
|
0.01
|
6.67
|
-16.21
|
-14.82
|
0.01
|
9.16
|
-12.67
|
-6.32
|
-15.09
|
4.52
|
20.67
|
11.04
|
-16.42
|
0.02
|
66.63
|
-12
|
-7.63
|
-0.04
|
10.17
|
-16.67
|
-9.09
|
0.01
|
20.41
|
-12.43
|
-7.15
|
-13.56
|
2.77
|
30.36
|
18.68
|
-21.2
|
Nospray
|
40
|
66.6
|
13.95
|
3.51
|
0.02
|
6.67
|
-16.22
|
-37.03
|
33.34
|
29.05
|
-16.45
|
6.58
|
-11.32
|
16.77
|
18.09
|
5.36
|
8.21
|
39.97
|
133.25
|
10
|
-1.64
|
0.02
|
20.34
|
-16.67
|
-18.19
|
28.58
|
51.5
|
-8.99
|
14.44
|
-10.17
|
13.3
|
40.26
|
35.74
|
-19.51
|
Biodynamic
|
-0.01
|
0
|
-6.98
|
7.6
|
-0.02
|
3.34
|
-10.81
|
-29.63
|
-0.01
|
4.99
|
9.91
|
-3.3
|
-11.32
|
9.03
|
30.49
|
10.51
|
6.43
|
-0.02
|
66.59
|
-12
|
3.27
|
-0.03
|
6.78
|
-5.56
|
-9.08
|
-0.01
|
-1.32
|
10.31
|
-0.86
|
-13.56
|
1.66
|
24.42
|
6.6
|
29.39
|
Cover Crops
|
39.99
|
0.02
|
4.65
|
4.09
|
0.02
|
3.33
|
-21.63
|
-29.63
|
33.32
|
29.85
|
-16.55
|
6.08
|
-3.77
|
18.06
|
16.54
|
11.56
|
-23.41
|
39.98
|
66.65
|
0
|
-2.82
|
49.99
|
16.95
|
-27.78
|
-18.19
|
28.58
|
52.05
|
-13.34
|
11.41
|
-3.39
|
19.39
|
38.94
|
29.64
|
-34.2
|
Nonchlorine Water
|
0.04
|
66.65
|
-13.95
|
4.68
|
0.02
|
6.67
|
-16.22
|
-29.63
|
0.02
|
22.5
|
-11.85
|
-2.34
|
-18.87
|
2.58
|
46.51
|
23
|
-18.86
|
0.02
|
66.62
|
-14
|
3.27
|
-0.04
|
6.78
|
-16.66
|
-18.18
|
0.01
|
24.93
|
-14.76
|
-5.05
|
-20.34
|
0.55
|
79.87
|
17.31
|
-13.52
|
Irrigation
|
0.01
|
66.64
|
-18.6
|
3.51
|
-0.02
|
10
|
-16.21
|
-14.82
|
0.01
|
16.05
|
-9.3
|
-4.26
|
-26.41
|
-7.1
|
97.16
|
18
|
-20.97
|
0
|
66.62
|
-24
|
1.63
|
-0.04
|
6.78
|
-11.11
|
-18.18
|
0.01
|
26.6
|
-12.33
|
-11.23
|
-27.12
|
-11.08
|
171.62
|
16.81
|
-19.77
|
fullColorAmendments
Percent of Variation over Median Value
Factor
|
Soil10.Loi.xrf.na
|
Soil10.Loi.xrf.mg
|
Soil10.Loi.xrf.al
|
Soil10.Loi.xrf.si
|
Soil10.Loi.xrf.p
|
Soil10.Loi.xrf.s
|
Soil10.Loi.xrf.k
|
Soil10.Loi.xrf.ca
|
Soil10.Loi.xrf.ti
|
Soil10.Loi.xrf.v
|
Soil10.Loi.xrf.cr
|
Soil10.Loi.xrf.mn
|
Soil10.Loi.xrf.fe
|
Soil10.Loi.xrf.co
|
Soil10.Loi.xrf.ni
|
Soil10.Loi.xrf.cu
|
Soil10.Loi.xrf.zn
|
Soil20.Loi.xrf.na
|
Soil20.Loi.xrf.mg
|
Soil20.Loi.xrf.al
|
Soil20.Loi.xrf.si
|
Soil20.Loi.xrf.p
|
Soil20.Loi.xrf.s
|
Soil20.Loi.xrf.k
|
Soil20.Loi.xrf.ca
|
Soil20.Loi.xrf.ti
|
Soil20.Loi.xrf.v
|
Soil20.Loi.xrf.cr
|
Soil20.Loi.xrf.mn
|
Soil20.Loi.xrf.fe
|
Soil20.Loi.xrf.co
|
Soil20.Loi.xrf.ni
|
Soil20.Loi.xrf.cu
|
Soil20.Loi.xrf.zn
|
Alfalfa Meal
|
-0.01
|
49.98
|
-14.29
|
-10.61
|
-0.01
|
16.67
|
20
|
0
|
0
|
17.42
|
-3.16
|
4.33
|
8.33
|
9.29
|
-68.03
|
40.29
|
-32.06
|
0
|
0.02
|
-8.89
|
-7.8
|
-50
|
9.84
|
27.59
|
-9.09
|
-0.01
|
11.17
|
-8.21
|
-0.31
|
12
|
8.65
|
-94.97
|
27.04
|
-24.06
|
All Purpose
|
-0.01
|
0.01
|
4.76
|
-2.23
|
-49.95
|
13.33
|
20
|
8
|
-0.01
|
19.64
|
2.63
|
12.78
|
12.5
|
14.24
|
-98.77
|
25.18
|
3.5
|
0
|
0
|
0
|
-2.79
|
-50.02
|
16.39
|
20.69
|
18.18
|
-0.01
|
19.17
|
1.14
|
13.49
|
16
|
13.83
|
-91.89
|
25.72
|
7.8
|
Azomite
|
-39.99
|
0.03
|
-2.38
|
-8.38
|
0
|
10
|
13.33
|
48
|
-28.57
|
-3.32
|
1.43
|
6.61
|
8.33
|
3.72
|
-68.03
|
13.92
|
18.04
|
-0.02
|
-0.02
|
2.22
|
0.56
|
-49.99
|
3.28
|
13.79
|
27.28
|
-0.01
|
-4.61
|
5.51
|
10.98
|
12
|
3.22
|
-108.56
|
-0.68
|
55.01
|
Blood Meal
|
-0.02
|
150.01
|
-9.53
|
5.03
|
-49.97
|
46.67
|
13.33
|
-24
|
0
|
86.75
|
7.16
|
30.87
|
-8.33
|
20.43
|
-3.28
|
101.26
|
-76.3
|
-39.97
|
99.99
|
-15.55
|
4.46
|
-50
|
32.79
|
13.79
|
-18.19
|
-0.02
|
52.2
|
3.64
|
20.3
|
-8
|
8.65
|
10.36
|
71.87
|
-60.6
|
Boron
|
0.02
|
50.05
|
-50
|
-6.7
|
-0.02
|
26.66
|
0
|
-24
|
57.14
|
78.7
|
-58.77
|
-14.01
|
-45.84
|
-21.05
|
104.51
|
56.86
|
-58.1
|
40.01
|
50.01
|
-33.33
|
9.47
|
-0.01
|
22.95
|
-6.9
|
-54.55
|
74.99
|
99.76
|
-56.1
|
-6.48
|
-44
|
-6.92
|
172.52
|
52.16
|
-84.53
|
Calcium
|
-0.01
|
50.01
|
-42.86
|
24.58
|
-49.95
|
10
|
-46.67
|
-8.01
|
0
|
10.3
|
10.95
|
-5.67
|
-50
|
-27.86
|
136.7
|
38.97
|
-79.26
|
0.02
|
99.96
|
-33.33
|
31.2
|
-50.02
|
19.67
|
-48.28
|
-9.1
|
-0.01
|
42.83
|
19.01
|
14.75
|
-36
|
-8.65
|
214.41
|
53
|
-96.42
|
Compost
|
0.02
|
-50.01
|
9.52
|
12.85
|
49.99
|
-30
|
0
|
-8
|
-0.03
|
-38.68
|
-3.9
|
-16.47
|
-16.67
|
-26.01
|
45.9
|
-58.45
|
60.5
|
0
|
-99.95
|
8.89
|
11.14
|
50
|
-29.51
|
0
|
-0.01
|
0
|
-37.46
|
-9.35
|
-18.94
|
-13.53
|
-24.21
|
17.57
|
-59.13
|
100.39
|
Compost Tea
|
-0.01
|
50.01
|
-42.86
|
24.58
|
-49.95
|
10
|
-46.67
|
-8.01
|
0
|
10.3
|
10.95
|
-5.67
|
-50
|
-27.86
|
136.7
|
38.97
|
-79.26
|
0.02
|
99.96
|
-33.33
|
31.2
|
-50.02
|
19.67
|
-48.28
|
-9.1
|
-0.01
|
42.83
|
19.01
|
14.75
|
-36
|
-8.65
|
214.41
|
53
|
-96.42
|
Compost With Chicken Manure And Peatmoss
|
-40
|
-0.03
|
-11.91
|
-12.29
|
-49.99
|
0
|
20
|
24
|
-28.57
|
-25.11
|
3.37
|
-9.38
|
8.33
|
-6.19
|
-37.29
|
16.17
|
-14.55
|
-39.97
|
0.01
|
6.67
|
6.13
|
-50.02
|
3.28
|
27.59
|
27.27
|
-24.99
|
-2.67
|
5.3
|
16.88
|
16
|
2.31
|
-110.36
|
11.06
|
15.6
|
Copper Sulfate
|
-0.01
|
50
|
-42.86
|
-2.23
|
-49.96
|
13.33
|
13.34
|
-8
|
28.57
|
40.35
|
-51.08
|
-17.45
|
-33.33
|
-21.67
|
78.69
|
22.8
|
-45.51
|
0.01
|
49.96
|
-40
|
8.36
|
-49.98
|
13.11
|
13.8
|
-18.18
|
25.01
|
53.26
|
-50.39
|
-12.04
|
-36
|
-17.29
|
120.27
|
28.98
|
-39.47
|
Donald Stoner Compost
|
39.98
|
300.03
|
-9.52
|
-1.68
|
-0.01
|
113.33
|
60
|
-56
|
57.14
|
284.71
|
-27.17
|
58.74
|
-4.17
|
60.06
|
53.69
|
230.86
|
-193.76
|
39.99
|
299.92
|
8.89
|
20.61
|
-0.01
|
95.08
|
68.97
|
-54.55
|
50
|
235.83
|
-31.06
|
55.03
|
0
|
58.79
|
119.37
|
190.26
|
-188.17
|
Down To Earth
|
0
|
-0.01
|
11.91
|
1.68
|
-49.96
|
6.67
|
20
|
23.99
|
0
|
7.09
|
10.29
|
21.32
|
20.83
|
13
|
-130.74
|
14.05
|
16.04
|
-0.03
|
0.01
|
6.67
|
1.67
|
-49.97
|
9.83
|
20.69
|
27.27
|
-25
|
4.99
|
5.51
|
18.86
|
20
|
10.95
|
-124.32
|
15.63
|
22.63
|
Feather Meal
|
0.01
|
50.02
|
-26.19
|
1.68
|
-0.01
|
20
|
-6.67
|
-24
|
28.6
|
66.05
|
-37.91
|
-2.91
|
-37.5
|
-11.76
|
93.03
|
44.53
|
-50
|
39.98
|
49.97
|
-4.45
|
5.01
|
-50
|
13.11
|
-6.9
|
-45.46
|
49.99
|
51.94
|
-35.32
|
-7.52
|
-24
|
1.73
|
84.23
|
28
|
-48.11
|
Fish Emulsion
|
-39.99
|
150
|
-47.62
|
-29.05
|
-49.98
|
80
|
33.34
|
-23.99
|
0
|
91.72
|
-20.33
|
26.09
|
-29.17
|
3.1
|
32.79
|
146.06
|
-122.55
|
-0.02
|
50.03
|
-42.22
|
-2.23
|
-50.05
|
29.51
|
41.38
|
-45.46
|
0.01
|
57.39
|
-21.3
|
-14.53
|
-32
|
-2.88
|
187.84
|
62.38
|
-108.58
|
Fish Seaweed
|
-0.01
|
50.01
|
-42.86
|
24.58
|
-49.95
|
10
|
-46.67
|
-8.01
|
0
|
10.3
|
10.95
|
-5.67
|
-50
|
-27.86
|
136.7
|
38.97
|
-79.26
|
0.02
|
99.96
|
-33.33
|
31.2
|
-50.02
|
19.67
|
-48.28
|
-9.1
|
-0.01
|
42.83
|
19.01
|
14.75
|
-36
|
-8.65
|
214.41
|
53
|
-96.42
|
Fishbone Meal
|
-0.02
|
0.01
|
21.43
|
2.79
|
-0.01
|
6.67
|
20
|
32
|
-0.01
|
13.17
|
9.14
|
25.66
|
29.17
|
18.58
|
-126.1
|
7.6
|
32.06
|
-0.01
|
0.02
|
8.89
|
5.01
|
-50.01
|
9.84
|
20.69
|
36.36
|
-0.01
|
11.83
|
8.62
|
28.17
|
24
|
14.41
|
-134.68
|
10.58
|
41.09
|
Green Sand
|
-0.02
|
150.02
|
-52.38
|
-7.82
|
-49.94
|
70
|
-13.33
|
-24
|
0
|
115.78
|
-1.05
|
16.86
|
-33.33
|
9.29
|
68.44
|
143.41
|
-125.71
|
-39.97
|
99.96
|
-57.78
|
-6.68
|
-50.05
|
32.79
|
-6.9
|
-18.18
|
-0.01
|
40.37
|
-8.21
|
-15.04
|
-32
|
-9.22
|
87.39
|
66.71
|
-78.41
|
Gypsum
|
0.03
|
49.99
|
0
|
6.15
|
-49.97
|
13.34
|
26.67
|
-24
|
-0.02
|
29.59
|
7.06
|
8.54
|
16.67
|
19.19
|
33.61
|
21.47
|
-12.25
|
0.01
|
49.98
|
11.11
|
14.48
|
-49.98
|
13.12
|
27.59
|
-27.27
|
-0.02
|
28.58
|
12.57
|
15.91
|
20
|
21.9
|
22.97
|
21.39
|
-15.34
|
Kelp Meal
|
-0.01
|
100.01
|
-35.71
|
8.38
|
-49.95
|
46.67
|
-6.66
|
-16
|
0.01
|
71.71
|
1.9
|
18.94
|
-20.83
|
9.29
|
107.38
|
86.55
|
-74.62
|
-0.01
|
99.97
|
-35.55
|
11.14
|
-50.01
|
29.51
|
0
|
-18.19
|
-0.01
|
45.79
|
2.29
|
6.11
|
-20
|
2.88
|
129.73
|
56.97
|
-51.5
|
Manganese Sulfate
|
39.98
|
0.02
|
-2.38
|
29.61
|
0
|
0
|
6.67
|
0
|
-0.02
|
12.44
|
10.01
|
20.85
|
0
|
6.81
|
180.74
|
-39.63
|
49.56
|
-0.01
|
0.02
|
-20
|
17.83
|
-50.01
|
-6.56
|
0
|
9.09
|
-0.01
|
-20.65
|
10.18
|
5.59
|
-12
|
-12.68
|
112.16
|
-32.21
|
98.31
|
Nutrilive Vitality
|
-0.01
|
50.01
|
-42.86
|
24.58
|
-49.95
|
10
|
-46.67
|
-8.01
|
0
|
10.3
|
10.95
|
-5.67
|
-50
|
-27.86
|
136.7
|
38.97
|
-79.26
|
0.02
|
99.96
|
-33.33
|
31.2
|
-50.02
|
19.67
|
-48.28
|
-9.1
|
-0.01
|
42.83
|
19.01
|
14.75
|
-36
|
-8.65
|
214.41
|
53
|
-96.42
|
Nutrisprout
|
40
|
100.03
|
-19.05
|
35.75
|
-0.03
|
30
|
0.01
|
-56
|
28.58
|
109.9
|
-7.69
|
26.67
|
-16.66
|
22.91
|
302.46
|
72.91
|
-10.39
|
40
|
99.97
|
-17.78
|
38.44
|
-0.01
|
26.23
|
6.89
|
-54.55
|
25.02
|
82.77
|
-10.6
|
23.98
|
-20
|
15.56
|
357.21
|
54.81
|
-2.86
|
Potash
|
-40
|
-0.02
|
-28.57
|
-22.9
|
0.02
|
-13.33
|
0
|
24
|
-28.56
|
-35.17
|
19.69
|
-27.15
|
-20.83
|
-24.77
|
4.92
|
-1.54
|
-15.43
|
-40.01
|
-49.98
|
-22.22
|
-15.04
|
0.03
|
-9.83
|
0
|
36.37
|
-25
|
-27.81
|
18.16
|
-22.79
|
-20
|
-23.63
|
77.03
|
-1.32
|
-13.91
|
Potassium Sulfate
|
0.02
|
0.01
|
-2.38
|
19.55
|
-49.96
|
3.33
|
20
|
-32.01
|
28.57
|
26.04
|
-10.43
|
-2.98
|
-12.5
|
-2.48
|
89.75
|
3.98
|
-12.8
|
0.01
|
0
|
2.22
|
18.38
|
-50.01
|
0
|
13.79
|
-36.37
|
24.99
|
19.95
|
-8.73
|
-0.62
|
-8
|
2.88
|
86.94
|
-1.92
|
1.43
|
Pro Grow
|
79.99
|
99.98
|
-14.29
|
-21.23
|
299.87
|
30
|
0
|
72
|
85.75
|
121.85
|
3.48
|
27.54
|
45.83
|
71.83
|
-130.74
|
61.59
|
-56.51
|
40
|
49.98
|
-28.89
|
-32.31
|
150.06
|
19.67
|
-6.9
|
72.72
|
74.98
|
74.63
|
4.57
|
6.47
|
40
|
53.6
|
-121.17
|
51.08
|
-62.42
|
Proboost
|
-39.98
|
-0.02
|
-16.67
|
-12.85
|
49.97
|
-10
|
0
|
16
|
-0.01
|
-24.31
|
21.17
|
-16.24
|
-12.5
|
-19.2
|
24.18
|
-2.78
|
-12.58
|
-39.98
|
-49.99
|
-15.55
|
-0.56
|
50.01
|
-9.83
|
0
|
36.36
|
-24.99
|
-21.85
|
25.39
|
-11.81
|
-16
|
-16.79
|
81.98
|
-3.86
|
-1.43
|
Progro
|
0.02
|
-0.02
|
0
|
3.91
|
0
|
-10
|
6.66
|
0
|
-0.02
|
-3.96
|
28.52
|
-4.12
|
0
|
-0.62
|
78.28
|
-6.63
|
2.49
|
39.98
|
-49.97
|
17.78
|
22.84
|
50.02
|
-3.28
|
6.9
|
18.18
|
-0.01
|
12.82
|
41.77
|
24.42
|
12
|
10.95
|
178.38
|
-12.85
|
47.96
|
Revita
|
-0.02
|
150.02
|
-52.38
|
-7.82
|
-49.94
|
70
|
-13.33
|
-24
|
0
|
115.78
|
-1.05
|
16.86
|
-33.33
|
9.29
|
68.44
|
143.41
|
-125.71
|
-39.97
|
99.96
|
-57.78
|
-6.68
|
-50.05
|
32.79
|
-6.9
|
-18.18
|
-0.01
|
40.37
|
-8.21
|
-15.04
|
-32
|
-9.22
|
87.39
|
66.71
|
-78.41
|
Seasalt
|
0.01
|
-99.98
|
11.9
|
34.08
|
-49.96
|
-26.67
|
26.66
|
-24
|
-0.01
|
-24.77
|
25.28
|
-3.66
|
-4.17
|
-14.86
|
142.21
|
-49.04
|
51.53
|
0.02
|
-100
|
2.22
|
34.54
|
-50.01
|
-29.51
|
27.58
|
-9.09
|
-0.01
|
-30.26
|
18.53
|
-5.23
|
-8
|
-17.87
|
192.98
|
-53.49
|
81.53
|
Sodium Molybdate
|
0
|
0
|
-2.38
|
30.17
|
-0.03
|
0
|
6.67
|
-8
|
0
|
10.86
|
14.32
|
16.13
|
0
|
3.1
|
157.79
|
-31.15
|
37.64
|
-0.02
|
0.02
|
-20
|
20.06
|
-50.01
|
0
|
0
|
9.09
|
-0.01
|
-10.34
|
14.55
|
13.04
|
-8
|
-6.34
|
125.22
|
-21.15
|
78.02
|
Sodium Selenate
|
0
|
0
|
-2.38
|
30.17
|
-0.03
|
0
|
6.67
|
-8
|
0
|
10.86
|
14.32
|
16.13
|
0
|
3.1
|
157.79
|
-31.15
|
37.64
|
-0.02
|
0.02
|
-20
|
20.06
|
-50.01
|
0
|
0
|
9.09
|
-0.01
|
-10.34
|
14.55
|
13.04
|
-8
|
-6.34
|
125.22
|
-21.15
|
78.02
|
Solubor
|
0.02
|
0.01
|
-2.38
|
29.61
|
-49.97
|
0
|
6.67
|
0
|
-0.01
|
9.9
|
13.48
|
17.94
|
0
|
5.57
|
168.44
|
-36.85
|
51.53
|
-0.01
|
49.98
|
-13.33
|
23.4
|
-50
|
6.56
|
6.89
|
0
|
-0.01
|
5.12
|
15.69
|
21.38
|
-4
|
1.73
|
148.65
|
-9.13
|
57.09
|
Sulfur
|
39.98
|
49.99
|
-7.14
|
19.55
|
0.01
|
10
|
6.66
|
23.99
|
0.01
|
44.64
|
7.9
|
23.4
|
16.66
|
25.39
|
100
|
-8.08
|
19.58
|
0
|
0.01
|
-22.22
|
-4.46
|
|