forked from na399/thai-constitutional-ploy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdataPreparation.Rmd
112 lines (86 loc) · 3.18 KB
/
dataPreparation.Rmd
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
111
112
---
title: "Data preparation"
author: "Natthawut Adulyanukosol"
date: "06/06/2019"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r}
library(tidyverse)
```
### Load data
From https://docs.google.com/spreadsheets/d/1EwPrWESPyTLEZIaRofA8nYb-Yn8o0akHjd9lHSwWgOc/edit by [Dollapak S.](https://www.facebook.com/markjmn/posts/10214028056044655?comment_id=10214030777872699) with further updates and cleaning
```{r}
candidatescore <- read.csv("./data/candidatescore-updated-CN8.csv")
```
### Format data
Rename columns and discard unneccessary information
```{r}
data <- candidatescore %>%
rename(
province = จังหวัด,
zone = เขตเลือกตั้ง,
party = พรรคการเมือง,
name = newname
) %>%
select(-c(ocrName, name, no)) %>%
filter(score != 0)
head(data)
```
Reformat the data from long to wide
```{r}
partyAll <- unique(data$party)
data <- data %>% spread(party, score)
data[is.na(data)] <- 0
data$total <- rowSums(data %>% select(-c('province', 'zone')))
head(data)
```
Group by political sides
```{r}
partyAntiNCPO <- c('เพื่อไทย',
'อนาคตใหม่',
'เสรีรวมไทย',
'ประชาชาติ',
'เศรษฐกิจใหม่',
'เพื่อชาติ',
'พลังปวงชนไทย')
partyNCPO <- c('พลังประชารัฐ',
'ประชาธิปัตย์',
'ภูมิใจไทย',
'ชาติไทยพัฒนา',
'รวมพลังประชาชาติไทย',
'ชาติพัฒนา',
'พลังท้องถิ่นไท',
'รักษ์ผืนป่าประเทศไทย',
'พลังชาติไทย',
'ประชาภิวัฒน์',
'ไทยศรีวิไลย์',
'พลังไทยรักไทย',
'ครูไทยเพื่อประชาชน',
'ประชานิยม',
'ประชาธรรมไทย',
'ประชาชนปฏิรูป',
'พลเมืองไทย',
'ประชาธิปไตยใหม่',
'พลังธรรมใหม่')
data$NCPO <- rowSums(data %>% select(partyNCPO))
data$antiNCPO <- rowSums(data %>% select(partyAntiNCPO))
dataFiltered <- data %>% select(c('NCPO', 'antiNCPO'))
dataFiltered$totalFiltered <- rowSums(dataFiltered)
dataFiltered <- data.frame(data$province, data$zone, dataFiltered, data$total)
head(dataFiltered)
```
## Votes per side as fraction by province
```{r}
dataFilteredByProvince <- dataFiltered %>%
group_by(data.province) %>%
summarise_all(funs(sum)) %>%
select(-c(data.zone))
head(dataFilteredByProvince)
```
## Save prepared file
```{r}
write.csv(dataFilteredByProvince, "./data/candidatescore-prepared.csv", row.names = F)
```