R/noce_total.R

Defines functions .noce_total_read_a_file noce_total_read_files

Documented in noce_total_read_files

# 建築着工統計 表7-1

#' read total construction data
#'
#' This function reads excel files for number of
#' total construction.
#'
#' @param file_path_v vector of excel files path
#'
#' @return tibble
#' @importFrom magrittr %>%
#' @export
noce_total_read_files <- function(file_path_v){

  ans_list <- vector("list", length(file_path_v))

  for(i in seq_along(file_path_v)){
    ans_list[[i]] <- .noce_total_read_a_file(file_path_v[i])
  }

  ans <- dplyr::bind_rows(ans_list)

  return(ans)
}


# 1ファイルの読み込みルーチン
.noce_total_read_a_file <- function(file_path){

  row_obj <- readxl::read_excel(file_path, col_names = .t7_1_names)

  # 日付取得
  .target_data <- .find_date_string(row_obj) %>% .into_dateobj()

  # 余計なものを省いて
  row_obj <- row_obj %>% .clean_rowdata() %>%
    .add_area_item(.localDB_area_t7_1) %>%
    .add_date_item(.target_data)


  # longer pivotの処理
  ans <-
    list(row_obj) %>%
    .make_dividedlist(1,"cat01_code") %>%
    .make_dividedlist(2,"tab_code")

  df_ans <- NULL
  for(i in seq_along(ans)){
    df_ans  <- dplyr::bind_rows(df_ans, ans[[i]] %>% .rename_value())
  }

  # コード対応表の追加

  ans <- df_ans %>%
    dplyr::left_join(.localDB_tab_t7_1, by = "tab_code") %>%
    dplyr::left_join(.localDB_cat01_t7_1, by = "cat01_code")


  ans <- ans %>%
    dplyr::select(-.data$area) %>%
    dplyr::select(.data$tab_code, .data$`表章項目`,
                  .data$cat01_code, .data$`用途`,
                  .data$area_code, .data$`地域`,
                  .data$time_code, .data$`時間軸(月次)`,.data$date,
                  .data$unit,
                  .data$value) %>%
    dplyr::mutate(value = as.numeric(.data$value),
                  `用途` = factor(.data$`用途`, 
                                levels = c("計", "A居住専用住宅", "B居住専用準住宅",
                                           "C居住産業併用建築物", "D農林水産業用建築物", "E鉱業,採石業,砂利採取業,建設業用建築物",
                                           "F製造業用建築物", "G電気・ガス・熱供給・水道業用建築物", "H情報通信業用建築物",
                                           "I運輸業用建築物", "J卸売業,小売業用建築物", "K金融業,保険業用建築物",
                                           "L不動産業用建築物", "M宿泊業,飲食サービス業用建築物", "N教育,学習支援業用建築物",
                                           "O医療,福祉用建築物", "Pその他のサービス業用建築物", "Q公務用建築物",
                                           "R他に分類されない建築物")))

  return(ans)

}


############################################################################
# t7_1 database
############################################################################

# 表7-1用の列名
.t7_1_names <- c("area",
                 "sp","11_12", "11_13", "11_14", "12_12", "12_13", "12_14", "13_12",
                 "13_13", "13_14", "14_12", "14_13", "14_14", "30_12", "30_13",
                 "30_14", "31_12", "31_13", "31_14", "34_12", "34_13", "34_14",
                 "40_12", "40_13", "40_14", "45_12", "45_13", "45_14", "50_12",
                 "50_13", "50_14", "51_12", "51_13", "51_14", "52_12", "52_13",
                 "52_14", "53_12", "53_13", "53_14", "56_12", "56_13", "56_14",
                 "59_12", "59_13", "59_14", "64_12", "64_13", "64_14", "67_12",
                 "67_13", "67_14", "74_12", "74_13", "74_14", "75_12", "75_13",
                 "75_14")
# tab 対応表
.localDB_tab_t7_1 <-
  structure(
    list(`tab_code` = c("12", "13", "14"),
         `表章項目` = c("建築物の数", "床面積の合計", "工事費予定額"),
         `unit` = c("棟", "m2", "万円")),
    row.names = c(NA, -3L), class = c("tbl_df", "tbl", "data.frame"))


# cat01 対応表
.localDB_cat01_t7_1 <-
  structure(
    list(`cat01_code` = c("11", "12", "13", "14", "30", "31",
                     "34", "40", "45", "50", "51", "52", "53", "56", "59", "64", "67",
                     "74", "75"),
         `用途` = c("計", "A居住専用住宅", "B居住専用準住宅",
                     "C居住産業併用建築物", "D農林水産業用建築物", "E鉱業,採石業,砂利採取業,建設業用建築物",
                     "F製造業用建築物", "G電気・ガス・熱供給・水道業用建築物", "H情報通信業用建築物",
                     "I運輸業用建築物", "J卸売業,小売業用建築物", "K金融業,保険業用建築物",
                     "L不動産業用建築物", "M宿泊業,飲食サービス業用建築物", "N教育,学習支援業用建築物",
                     "O医療,福祉用建築物", "Pその他のサービス業用建築物", "Q公務用建築物",
                     "R他に分類されない建築物")),
    row.names = c(NA, -19L), class = c("tbl_df", "tbl", "data.frame"))

# area 対応表
.localDB_area_t7_1 <-
  structure(
    list(`area_code` = c("00000", "01000", "02000", "03000",
                     "04000", "05000", "06000", "07000", "08000", "09000", "10000",
                     "11000", "12000", "13000", "14000", "15000", "16000", "17000",
                     "18000", "19000", "20000", "21000", "22000", "23000", "24000",
                     "25000", "26000", "27000", "28000", "29000", "30000", "31000",
                     "32000", "33000", "34000", "35000", "36000", "37000", "38000",
                     "39000", "40000", "41000", "42000", "43000", "44000", "45000",
                     "46000", "47000", "00001", "01001", "02001", "03001", "04001",
                     "05001", "06001", "07001", "08001", "09001", "10001", "11001",
                     "12001", "13001", "14001", "15001", "16001", "17001", "18001",
                     "19001", "20001", "21001", "22001", "23001", "24001", "25001",
                     "26001", "27001", "28001", "29001", "30001", "31001", "32001",
                     "33001", "34001", "35001", "36001", "37001", "38001", "39001",
                     "40001", "41001", "42001", "43001", "44001", "45001", "46001",
                     "47001", "00002", "01002", "02002", "03002", "04002", "05002",
                     "06002", "07002", "08002", "09002", "10002", "11002", "12002",
                     "13002", "14002", "15002", "16002", "17002", "18002", "19002",
                     "20002", "21002", "22002", "23002", "24002", "25002", "26002",
                     "27002", "28002", "29002", "30002", "31002", "32002", "33002",
                     "34002", "35002", "36002", "37002", "38002", "39002", "40002",
                     "41002", "42002", "43002", "44002", "45002", "46002", "47002"),
    `地域` = c("全国", "北海道", "青森県", "岩手県", "宮城県",
                "秋田県", "山形県", "福島県", "茨城県", "栃木県", "群馬県", "埼玉県",
                "千葉県", "東京都", "神奈川県", "新潟県", "富山県", "石川県",
                "福井県", "山梨県", "長野県", "岐阜県", "静岡県", "愛知県", "三重県",
                "滋賀県", "京都府", "大阪府", "兵庫県", "奈良県", "和歌山県",
                "鳥取県", "島根県", "岡山県", "広島県", "山口県", "徳島県", "香川県",
                "愛媛県", "高知県", "福岡県", "佐賀県", "長崎県", "熊本県", "大分県",
                "宮崎県", "鹿児島県", "沖縄県", "全国市部", "北海道市部", "青森県市部",
                "岩手県市部", "宮城県市部", "秋田県市部", "山形県市部", "福島県市部",
                "茨城県市部", "栃木県市部", "群馬県市部", "埼玉県市部", "千葉県市部",
                "東京都市部", "神奈川県市部", "新潟県市部", "富山県市部", "石川県市部",
                "福井県市部", "山梨県市部", "長野県市部", "岐阜県市部", "静岡県市部",
                "愛知県市部", "三重県市部", "滋賀県市部", "京都府市部", "大阪府市部",
                "兵庫県市部", "奈良県市部", "和歌山県市部", "鳥取県市部", "島根県市部",
                "岡山県市部", "広島県市部", "山口県市部", "徳島県市部", "香川県市部",
                "愛媛県市部", "高知県市部", "福岡県市部", "佐賀県市部", "長崎県市部",
                "熊本県市部", "大分県市部", "宮崎県市部", "鹿児島県市部", "沖縄県市部",
                "全国郡部", "北海道郡部", "青森県郡部", "岩手県郡部", "宮城県郡部",
                "秋田県郡部", "山形県郡部", "福島県郡部", "茨城県郡部", "栃木県郡部",
                "群馬県郡部", "埼玉県郡部", "千葉県郡部", "東京都郡部", "神奈川県郡部",
                "新潟県郡部", "富山県郡部", "石川県郡部", "福井県郡部", "山梨県郡部",
                "長野県郡部", "岐阜県郡部", "静岡県郡部", "愛知県郡部", "三重県郡部",
                "滋賀県郡部", "京都府郡部", "大阪府郡部", "兵庫県郡部", "奈良県郡部",
                "和歌山県郡部", "鳥取県郡部", "島根県郡部", "岡山県郡部", "広島県郡部",
                "山口県郡部", "徳島県郡部", "香川県郡部", "愛媛県郡部", "高知県郡部",
                "福岡県郡部", "佐賀県郡部", "長崎県郡部", "熊本県郡部", "大分県郡部",
                "宮崎県郡部", "鹿児島県郡部", "沖縄県郡部")),
    row.names = c(NA, -144L),
    class = c("tbl_df", "tbl", "data.frame"))
rea-osaka/noce documentation built on July 17, 2020, 7:33 a.m.