R/descargas.R

Defines functions obtener_url_manual_app descargar_replicas obtener_url_replicas descargar_base obtener_separadores_base obtener_url_base obtener_nombre_nota obtener_url_nota obtener_nombre_manual obtener_url_manual

obtener_url_manual = function(encuesta) {
  url = switch(
    encuesta,
    "eanna_h" = ,
    "eanna_i" = ,
    "eanna_n" = "eanna/eanna_urbana_manual_bases.pdf",
    "engho_h" = ,
    "engho_i" = ,
    "engho_pampa" = ,
    "engho_patagonia" = ,
    "engho_metro" = ,
    "engho_cuyo" = ,
    "engho_nea" = ,
    "engho_noa" = ,
    "engho_bsas" = "engho/engho2017_18_manual_uso_bases.pdf",
    "enfr" = "enfr/manual_base_usuario_enfr2018.pdf",
    "discapacidad" = "enpd/estudio_discapacidad_manual_base_datos_usuario.pdf"
  )
  paste0("https://www.indec.gob.ar/ftp/cuadros/menusuperior/", url)
}

obtener_nombre_manual = function(encuesta) {
  switch(
    encuesta,
    "eanna_h" = ,
    "eanna_i" = ,
    "eanna_n" = "Manual Bases EANNA urbana.pdf",
    "engho_h" = ,
    "engho_i" = ,
    "engho_pampa" = ,
    "engho_patagonia" = ,
    "engho_metro" = ,
    "engho_cuyo" = ,
    "engho_nea" = ,
    "engho_noa" = ,
    "engho_bsas" = "Manual Bases ENGHo.pdf",
    "enfr" = "Manual Bases ENFR.pdf",
    "discapacidad" = "Manual Bases ENDI.pdf"
  )
}

obtener_url_nota = function(encuesta) {
  url = switch(
    encuesta,
    "eanna_h" = ,
    "eanna_i" = ,
    "eanna_n" = "eanna/nota_tecnica_bases_eanna_urbana.pdf",
    "engho_h" = ,
    "engho_i" = ,
    "engho_pampa" = ,
    "engho_patagonia" = ,
    "engho_metro" = ,
    "engho_cuyo" = ,
    "engho_nea" = ,
    "engho_noa" = ,
    "engho_bsas" = "engho/engho2017_18_nota_tecnica_4.pdf",
    "enfr" = "enfr/nota_tecnica_enfr_2018.pdf",
    "discapacidad" = "enpd/estudio_discapacidad_nota_tecnica.pdf"
  )
  paste0("https://www.indec.gob.ar/ftp/cuadros/menusuperior/", url)
}


obtener_nombre_nota = function(encuesta) {
  switch(
    encuesta,
    "eanna_h" = ,
    "eanna_i" = ,
    "eanna_n" = "Nota Tecnica EANNA.pdf",
    "engho_h" = ,
    "engho_i" = ,
    "engho_pampa" = ,
    "engho_patagonia" = ,
    "engho_metro" = ,
    "engho_cuyo" = ,
    "engho_nea" = ,
    "engho_noa" = ,
    "engho_bsas" = "Nota Tecnica ENGHo.pdf",
    "enfr" = "Nota Tecnica ENFR.pdf",
    "discapacidad" = "Nota Tecnica ENDI.pdf"
  )
}


obtener_url_base = function(encuesta) {
  url = switch(
    encuesta,
    "eanna_h" = "eanna/C1_EANNA_URBANA.zip",
    "eanna_i" = "eanna/C2_EANNA_URBANA.zip",
    "eanna_n" = "eanna/C3_EANNA_URBANA.zip",
    "engho_h" = "engho/engho2018_hogares.zip",
    "engho_i" = "engho/engho2018_personas.zip",
    "engho_pampa" = ,
    "engho_patagonia" = ,
    "engho_metro" = ,
    "engho_cuyo" = ,
    "engho_nea" = ,
    "engho_noa" = ,
    "engho_bsas" = "engho/engho2018_gastos.zip",
    "enfr" = "enfr/ENFR2018_baseusuario.zip",
    "discapacidad" = "enpd/base_estudio_discapacidad_2018.zip"
  )
  paste0("https://www.indec.gob.ar/ftp/cuadros/menusuperior/", url)
}

obtener_separadores_base = function(encuesta) {
  sep = switch(
    encuesta,
    "eanna_h" = ,
    "eanna_i" = ,
    "eanna_n" = ,
    "discapacidad" = ";",
    "engho_h" = ,
    "engho_i" = ,
    "engho_pampa" = ,
    "engho_patagonia" = ,
    "engho_metro" = ,
    "engho_cuyo." = ,
    "engho_nea" = ,
    "engho_noa" = ,
    "engho_bsas" =,
    "enfr" = "|"
  )
  # EANNA -> "," Resto -> "."
  dec = switch(
    encuesta,
    "eanna_h" = ,
    "eanna_i" = ,
    "eanna_n" = ",",
    "discapacidad" =,
    "engho_h" = ,
    "engho_i" = ,
    "engho_pampa" = ,
    "engho_patagonia" = ,
    "engho_metro" = ,
    "engho_cuyo." = ,
    "engho_nea" = ,
    "engho_noa" = ,
    "engho_bsas" =,
    "enfr" = "."
  )
  return(list("sep" = sep, "dec" = dec))
}


descargar_base = function(encuesta) {
  # Obtener URL de la base
  url = obtener_url_base(encuesta)

  # Obtener separadores
  seps = obtener_separadores_base(encuesta)

  # Chequear si la base ya esta descargada
  folder = switch(
    encuesta,
    "eanna_h" = "eanna_h",
    "eanna_i" = "eanna_i",
    "eanna_n" = "eanna_n",
    "engho_h" = "engho_h",
    "engho_i" = "engho_i",
    "engho_pampa" = ,
    "engho_patagonia" = ,
    "engho_metro" = ,
    "engho_cuyo" = ,
    "engho_nea" = ,
    "engho_noa" = ,
    "engho_bsas" = "engho_gastos",
    "enfr" = "enfr",
    "discapacidad" = "discapacidad"
  )
  path = file.path(cemrepboot_file("data"), folder)
  if (!file.exists(path)) {
    dir.create(path)
  }

  # Chequeamos si tenemos el .zip descargado.
  # Chequeamos si hay internet.
  file_zip = file.path(path, "datos.zip")
  if (!file.exists(file_zip)) {
    if (curl::has_internet()) {
      utils::download.file(url, file_zip)
    } else {
      app_error("No hay conexion a internet")
    }
  } else {
    showNotification(
      ui = "Utilizando version local disponible en el cache.",
      type = "message"
    )
  }

  nombre = as.character(utils::unzip(file_zip, list = TRUE)$Name)

  base = utils::read.table(
    unz(file_zip, nombre),
    sep = seps$sep,
    dec = seps$dec,
    header = TRUE,
    fill = TRUE
  )

  if (encuesta == "eanna_n"){
    colnames(base)[1] = "CODIGO"
  }

  if (encuesta %in% c("enfr", "discapacidad")) {
    base = base[, 1:(ncol(base) - 3)]
  }
  return(base)
}

obtener_url_replicas = function(encuesta) {
  url = switch(
    encuesta,
    "eanna_h" = ,
    "eanna_i" = ,
    "eanna_n" = "eanna/C3_EANNA_URBANA.zip",
    "engho_h" = ,
    "engho_i" = ,
    "engho_pampa" = ,
    "engho_patagonia" = ,
    "engho_metro" = ,
    "engho_cuyo" = ,
    "engho_nea" = ,
    "engho_noa" = ,
    "engho_bsas" = "engho/engho2018_replicas.zip",
    "enfr" = "enfr/base_replicas_enfr2018.zip",
    "discapacidad" = "enpd/base_replicas_estudio_discapacidad_2018.zip"
  )
  paste0("https://www.indec.gob.ar/ftp/cuadros/menusuperior/", url)
}

descargar_replicas = function(encuesta) {
  # Obtener URL de la base de replicas
  url = obtener_url_replicas(encuesta)

  # Obtener separadores
  sep = switch(
    encuesta,
    "eanna_h" = ,
    "eanna_i" = ,
    "eanna_n" = ",",
    "engho_h" = ,
    "engho_i" = ,
    "engho_pampa" = ,
    "engho_patagonia" = ,
    "engho_metro" = ,
    "engho_cuyo" = ,
    "engho_nea" = ,
    "engho_noa" = ,
    "engho_bsas" =,
    "enfr" = "|",
    "discapacidad" = ";"
  )
  # dec es siempre "."
  dec = "."

  folder = switch(
    encuesta,
    "eanna_h" = "eanna_h",
    "eanna_i" = "eanna_i",
    "eanna_n" = "eanna_n",
    "engho_h" = "engho_h",
    "engho_i" = "engho_i",
    "engho_pampa" = ,
    "engho_patagonia" = ,
    "engho_metro" = ,
    "engho_cuyo" = ,
    "engho_nea" = ,
    "engho_noa" = ,
    "engho_bsas" = "engho_gastos",
    "enfr" = "enfr",
    "discapacidad" = "discapacidad"
  )

  path = file.path(cemrepboot_file("data"), folder)
  if (!file.exists(path)) {
    dir.create(path)
  }

  # Chequeamos si tenemos el .zip descargado.
  # Chequeamos si hay internet.
  file_zip = file.path(path, "datos_replicas.zip")
  if (!file.exists(file_zip)) {
    if (curl::has_internet()) {
      utils::download.file(url, file_zip)
    } else {
      app_error("No hay conexion a internet")
    }
  } else {
    showNotification(
      ui = "Utilizando version local de replicas disponible en el cache.",
      type = "message"
    )
  }

  nombre = as.character(utils::unzip(file_zip, list = TRUE)$Name)

  base = utils::read.table(
    unz(file_zip, nombre),
    sep = sep,
    dec = dec,
    header = TRUE,
    fill = TRUE
  )

  if (encuesta == "eanna_n"){
    colnames(base)[1] = "CODIGO"
  }
  if (encuesta %in% c("enfr", "discapacidad")) {
    base = base[, 1:(ncol(base) - 3)]
  }
  return(base)
}


obtener_url_manual_app = function() {
  "src/res/manual.pdf"
  # filename = function() {
  #   return("CEMRepBoot Manual de Uso v1.0.pdf" )
  # },
  #
  # content = function(file) {
  #   file.copy("src/res/manual.pdf", file)
  # }
}
tomicapretto/cemrepboot documentation built on Dec. 31, 2020, 8:43 a.m.