key請由課綱選: 新課綱:https://docs.google.com/document/d/1o8UQIpy6GFqCgfUxc47fqyAPuEYrk3FLd7bB1EhYMVg

knitr::opts_chunk$set(echo = TRUE, eval=F)
library(drake)
library(econDV)
library(dplyr)

makecondition

library(dplyr)
library(tidyr)
library(stringr)
library(googledrive)
library(readr)
library(ggplot2)
library(econDV)
econDV::setup_chinese(need2Knit = F)
rprojroot::is_rstudio_project -> .pj
.pj$make_fix_file() -> .root

imageFolder <- file.path(.root(),"img")
dataFolder <- file.path(.root(),"data")

if(!dir.exists(imageFolder)) dir.create(imageFolder)
if(!dir.exists(dataFolder)) dir.create(dataFolder)

xfun::download_file("https://www.dropbox.com/s/v8rchkn63fzgjj3/drake_facet.Rdata?dl=1")
load("drake_facet.Rdata")
drake$.updateCache()
drake$source_plan()
drake$makePlan()
drake$eval_makecondition()
# 基本設計
ggByCounty <- function(Xdata){
  ggplot(
    data=Xdata
  ) +
  geom_col(
    aes(
      x=號次, y=得票率, fill=號次
    )
  )
}
df_byCounty %>%
  filter(地區=="新北市") %>%
  ggByCounty()
df_byCounty %>%
  ggByCounty() +
  facet_wrap(
    vars(地區)
  )
View(predElection2020)
drake$loadTarget$df_byCounty()
View(df_byCounty)
drake$loadTarget$electionDataMerged()
View(electionDataMerged)
ggfacet_base_function = function(Xdata){
  ggplot(
    data=Xdata,
    mapping=aes(
        x=year,
        y=得票率
      )
    ) +
    geom_point() +
    geom_line() +
    scale_x_continuous(
      breaks=c(2012, 2016, 2020),
      labels=c(2012, 2016, 2020)
    )
}
electionDataMerged %>%
  ggfacet_base_function() +
  facet_grid(
    rows=vars(地區),
    cols=vars(party)
  )
drake$loadTarget$electionKmtWithRegions()
View(electionKmtWithRegions)
electionDataMerged %>%
  filter(
    party=="kmt"
  ) %>%
  mutate(
    region =
      dplyr::case_when(
        stringr::str_detect(地區,"[北基竹桃宜]") ~ "北部",
        stringr::str_detect(地區,"[中苗彰投雲]") ~ "中部",
        stringr::str_detect(地區,"[高南嘉屏澎]") ~ "南部",
        TRUE ~ "東部" # 其他
      )
  ) -> electionKmtWithRegions
View(electionKmtWithRegions)
drake$loadTarget$predElection2020rev()
electionDataMerged2020 <- {
  predElection2020rev$year = 2020
  predElection2012rev$year = 2012
  predElection2016rev$year = 2016

  electionDataMerged <- 
    dplyr::bind_rows(
      predElection2012rev, predElection2016rev, predElection2020rev
    )
  electionDataMerged$姓名 %>% factor() ->
    electionDataMerged$party
  levels(electionDataMerged$party) <- c("pfp", "kmt", "dpp", "kmt", "kmt")

  electionDataMerged %>%
    mutate(
      地區 = dplyr::if_else(地區=="桃園縣", "桃園市", 地區)) ->
    electionDataMerged

  # electionDataMerged %>%
  #   filter(
  #     party != "pfp",
  #     stringr::str_detect(地區,"北|桃|基|竹")
  #   ) -> electionDataMerged

  electionDataMerged %>%
    filter(
      year==2020
    )


  electionDataMerged
}
View(electionDataMerged2020)
electionDataMerged2020 %>%
  filter(
    party=="kmt"
  ) %>%
  mutate(
    region =
      dplyr::case_when(
        stringr::str_detect(地區,"[北基竹桃宜]") ~ "北部",
        stringr::str_detect(地區,"[中苗彰投雲]") ~ "中部",
        stringr::str_detect(地區,"[高南嘉屏澎]") ~ "南部",
        TRUE ~ "東部" # 其他
      )
  ) -> electionKmtWithRegions
View(electionKmtWithRegions)
ggfacet_base_regional <- function(Xdata){
  ggplot(
    data=Xdata,
    aes(
      x=地區, 
      y=得票率,
      fill=region
    )
  ) +
  geom_col() +
  coord_flip()
}
electionKmtWithRegions %>%
  ggfacet_base_regional() +
  facet_grid(
    rows=vars(region),
    scales="free_y",
    space="free_y"
  ) +
  theme_classic()


tpemartin/econDV1091 documentation built on Feb. 17, 2021, 6:37 a.m.