-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwater-quality-data-preparation-v4.R
103 lines (101 loc) · 3.96 KB
/
water-quality-data-preparation-v4.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
# This script is sourced in qlikview integration
# Prepare data for plotting heatmap using image function
prepare_data <- function(wq1){
require(devtools)
require(cluster)
wq1$QualityParameter = as.character(wq1$QualityParameter)
wq1$Year <- as.character(wq1$Year)
wq1$VillageName<- as.character(wq1$VillageName)
wq1["Arsenic"] <- 0
wq1["Arsenic"] <- as.numeric(grepl("Arsenic",wq1$QualityParameter))*1
wq1["Fluoride"] <- 0
wq1["Fluoride"] <- as.numeric(grepl("Fluoride",wq1$QualityParameter))*2
wq1["Iron"] <- 0
wq1["Iron"] <- as.numeric(grepl("Iron",wq1$QualityParameter))*3
wq1["Nitrate"] <- 0
wq1["Nitrate"] <- as.numeric(grepl("Nitrate",wq1$QualityParameter))*4
wq1["Salinity"] <- 0
wq1["Salinity"] <- as.numeric(grepl("Salinity",wq1$QualityParameter))*5
wqArsenic <- aggregate(Arsenic ~ StateName +
DistrictName +
BlockName +
PanchayatName +
VillageName +
HabitationName +
Year,
data= wq1, sum )
wqFlouride <- aggregate(Fluoride ~ StateName +
DistrictName +
BlockName +
PanchayatName +
VillageName +
HabitationName +
Year,
data = wq1, sum )
wqIron <- aggregate(Iron ~ StateName +
DistrictName +
BlockName +
PanchayatName +
VillageName +
HabitationName +
Year, data=wq1, sum )
wqNitrate <- aggregate(Nitrate ~ StateName +
DistrictName +
BlockName +
PanchayatName +
VillageName +
HabitationName +
Year, data=wq1, sum )
wqSalinity <- aggregate(Salinity ~ StateName +
DistrictName +
BlockName +
PanchayatName +
VillageName +
HabitationName +
Year, data=wq1, sum )
wq1s <- merge(wqArsenic, wqFlouride)
wq1s <- merge(wq1s, wqIron)
wq1s <- merge(wq1s, wqNitrate)
wq1s <- merge(wq1s, wqSalinity)
wq1s<- merge(wq1s, wq1)
wq1s["All"] <- wq1s[,8]+wq1s[,9]++wq1s[,10] +wq1s[,11] +wq1s[,12]
wq1s <- wq1s[order(wq1s[,4], wq1s[,1], wq1s[2], wq1s[3]), ]
tab_ready <- as.matrix(wq1s[,c(13)], ncol=5 )
class(tab_ready )<-"numeric"
is.na(tab_ready) <- sapply(tab_ready, is.infinite)
tab_ready[is.na(tab_ready)] <- 0
tab_ready[is.nan(tab_ready)] <- 0
rownames(tab_ready)<-as.character(wq1s[,"VillageName"])
return(tab_ready)
}
wq1_df <- function(wq1){
wq1$QualityParameter = as.character(wq1$QualityParameter)
wq1$Year <- as.character(wq1$Year)
wq1$VillageName<- as.character(wq1$VillageName)
wq1["Arsenic"] <- 0
wq1["Arsenic"] <- as.numeric(grepl("Arsenic",wq1$QualityParameter))*1
wq1["Fluoride"] <- 0
wq1["Fluoride"] <- as.numeric(grepl("Fluoride",wq1$QualityParameter))*2
wq1["Iron"] <- 0
wq1["Iron"] <- as.numeric(grepl("Iron",wq1$QualityParameter))*3
wq1["Nitrate"] <- 0
wq1["Nitrate"] <- as.numeric(grepl("Nitrate",wq1$QualityParameter))*4
wq1["Salinity"] <- 0
wq1["Salinity"] <- as.numeric(grepl("Salinity",wq1$QualityParameter))*5
wq1 <- wq1[order(wq1[,4], wq1[,1], wq1[2], wq1[3]), ]
return(wq1)
}
draw_hm <- function(data,
x,
y,
fillInput,
facetInput,
fill_discrete="QualityParameter"){
library(ggplot2)
ggplot(data, aes(x, y))+
geom_raster(aes(fill = fillInput))+
labs(title ="Heat Map", x = "Year", y = "Quality Parameter", cey=0.8)+
scale_fill_discrete(name = fill_discrete)+
facet_grid(facets = facetInput)+
theme(axis.text.x = element_text(angle = 90, hjust = 1))
}